第一章 大B和小b

在学习C++之前,我们先来搞清楚计算机的单位。

先说一下本章的学习要点

1,   1bit里可以存储0或者1

2,   1byte是8个bit的组合

3,   计算机语言(C和C++)的最小变量单位是Byte

4,   变量都是由bit组成,都是有存储范围的


---------------------------------------------------------------------------------------------------------------------------------------

相信大家都知道计算机内部是2进制的世界,它的最小单位是【位】,英文:bit

1bit里可以存储0或者1。但是这是为啥呢?

我是好奇宝宝,碰到什么不懂的地方都要问为啥,在追求为啥的过程中感受快乐。

通过各种书籍的阅读和度娘的帮助,我终于明白了真相。

计算机启用2进制并不是因为电子计算机使用晶体管的高低电平来存储数据。

而是因为我们的道家老祖【老子】领悟了这个混沌世界的真相。

道生一,一生二,二生三,三生万物】

这句话翻译白话文就是:有1个道(bit),就可以存两个值(0或1),能存两个就可以发展成三个(11),甚至无限大(11111111111111111111111)。

我们的祖先领先了这个世界太久,只是我们没有去发扬光大,接下来就靠我们努力啦。正能量UP。


而在C++语言中,并不能直接操作bit单位的内容(使用union可以,这个后面再讲)。

基本数据类型里,最小的是byte。它是由8个bit所组成的。但是这是为啥呢?

我是好奇宝宝,碰到什么不懂的地方都要问为啥,在追求为啥的过程中感受快乐。

通过各种书籍的阅读和度娘的帮助,我终于明白了真相。(这段有点凑字数嫌疑,以后就不写了,大家自己脑补哈)

简单的2进制计算你就可以得出8位的2进制数可以表示256个不同数值。(不会算的童鞋请去问度娘,这个真需要会)

然后打开词典翻译一下byte的汉语意思,会被翻译成【字节】,也就是字母的意思。

你再想想英语里有多少个字母?26个!

很遗憾,计算机是老美发明的,刚发明的时候也没打算给其他国家用。

于是乎他们规定了一个数值和字母的对应关系表叫【ASCII】(不熟悉的请去问度娘)。

由于美国人文字的贫乏,他们使劲的往里添加可见的不可见的也只凑出了128个字符。

他们想,用一倍的空间来存储字符应该足够了吧。于是就用8位的bit来构建成了byte。

这明显是个失败的设计,因为他没有考虑到有一天计算机会成长的如此庞大。

由于byte不够存储其他语言,使得计算机的多语言道路艰辛了很久。现在我们用UNICODE来解决了。这个以后讲。

计算机在这个世界上还是个年轻的事物,他还需要很久的成长。就像千年虫现象,IPV4问题等等。

---------------------------------------------------------------------------------------------------------------------------------------

笑话一则:

   有一天我听到一个同事在抱怨,“联通就知道骗人,我刚升级的20兆宽带,下BT最多就能到2兆多。”

   然后我忍不住笑了出来。那个哥们儿道“郭老师,你家的能下到20兆么?”

   我无语...


   内解:

        与通信运营商所签合同的下载速度是:20 Mbps

        BT下载的速度是:2.3MBps

        缩写含义:Mbps = Mbit每秒   MBps = Mbyte每秒

        一个大B等于8个小b。听了笑话你笑了么亲。

---------------------------------------------------------------------------------------------------------------------------------------


以下贴出C语言基本类型的范围,请想在C++世界里奔走的童鞋背下来,印在脑子里。

----------------------------------------------------------------------------------------------------------------------------------------

类型大小范围
整形
char
signed char
1byte-128~127
unsigned char1byte0~255
int
signed int
long
signed long
4byte-2147483648~2147483647
unsigned int
unsigned long
4byte0~4294967295
short
signed short
2byte-32768~32767
unsigned short2byte0~65535
bool(C++ )1byte0(false) 1(true)
小数型
float4byte±1.2×10的-34次方~±3.4×10的34次方(7位有效数字)
double8byte±2.2×10的-308次方~±1.8×10的308次方(15位有效数字)
   

----------------------------------------------------------------------------------------------------------------------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值