从65535聊到计算机的二进制计算

最近呢,在搞浮点数的问题,突然就想到了65535这个数字,悲剧的是竟然忘记了这个数字的由来..当然我是知道是代表最大值的..但是几个字节的最大值给忘了,怎么算处理的也给忘了..所以去网上重温一下二进制的计算因此才有了此帖的由来..

首先是计算机的数据表示的单位:

1位-----------> 1bit

8位-----------> 8bit = 1Byte   俗称一个字节 ,用十六进制表示就是0xMM

16位----------->16bit = 2Byte = 1Word    俗称一个字

 

其次是二进制的计算方法       对照着下面的例子就很容易类比到自己的计算上

          

值  位数最大值  十进制值
111142324-1

(为什么是24-1,可以参照高中的等比数列,我也忘记了.)

然后继续

char  ----> 1个字节----->1111 1111------------>无符号char的话最大值28-1,有符号的char的话最大值27-1

int ------->4个字节----->1111 1111 * 1111 1111 * 1111 1111 * 1111 1111------->unsigned int的话最大值是232-1, int的话最大值是231-1

另外再附赠一个字节对照表

2n十进制大小(就是我们所说的几bite)bite-->Byte-->M---->G
201 
21
2 
224 
238 
2416 
2532 
2664 
27128 
28256 
29512 
2101024 * 1K 
2112048  *  2K 
2124096 * 4K 
2138192 * 8K 
21416318 * 16K 
21532768 * 32K 
21665536 * 64K 
217131072 * 128K 
218262144 * 256K 
2191310720 *512K  
2202621440 * 1024K * 1M 
2215242880 * 2048K *2M 
22210485760 *4096K  *4M 
22320971520 * 8192K *  8M 
22441943040 * 16318K * 16M 
22583886080 *32768K  *32M 
226167772160 * 65536K *  64M 
227335544320 *131072K * 128M 
228671088640 *262144K   *256M 
2291342177280*1310720K*215M 
2302684354560*2621440K*1024M*1G 

 对照着上面的表可以看出65535 = 65536 - 1 所以是1111 1111*1111 1111 即2Byte的最大值

 

转载于:https://www.cnblogs.com/silentNight/p/5278084.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值