浅谈C/C++中数据存储 “位”与“字节”

这里要先说一下计算机最小的存储单位,即比特(Bit),也叫位。这个“位”小到什么程度呢?小到一个“位”只能存放一个0值或者一个1值。这也就是为什么计算机磁盘中的数据都是以二进制存储的,因为二进制的数不是0就是1啊。



大家把一个“位”想象成一个空格子,我们往这个格子里填数字,但前提是只能填0或1。如果我有一个位即一个空格子,我就可以在格子中存储0或者1两个数了;如果我有2个位即两个空格子,每个格子里我都可以填0或1,我就可以存储00、01、10、11四个数了;那么如果我有3个位呢,每个格子都有2种可能,这样3个位就能表示2*2*2个数了,所以,用N个格子就可以以二进制的形式表示出0到2^N-1内任意数字了。

为了方便,我们将8个格子即8个位定作一个字节(Byte),这样,1字节为8位,2^8=256,即可表示0~255内任意数字了。但是,计算机中的数字可不止0~255这些啊,用1个字节来存储数据远远不够啊!那怎么办呢?用多个字节存储。具体多少个呢?那就要看你要存多大的数据了。一般在32位机中,用4个字节来存放我们平常用的数据就绰绰有余了,你看,4个字节就有4*8=32位,就能表示2^32个数字,即0~2^32-1=2147483647内的任意数字(还有对应负的)。所以,一般VC6.0中的int、float型数据都用4个字节来存储。有人会说,如果我要存的数据比2147483647还大呢?好说,那就用double型来存储,8个字节够你用了。


PS:第一篇博文,图自己瞎画的权当给自己记的学习笔记了,话说找到了个可以随便写字的地方好开心,以后有什么学习收获心得随手记下来也是个好习惯,写给自己,路过的可以打个招呼我知道有人来过哈(づ ̄3 ̄)づ



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值