从你的全世界路过-醉清风,宛如一场梦
关于二进制与十进制之间的关系
一、正整数的十进制转换二进制:
要点:除二取余,倒序排列
解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等
于一或零时为止,倒取将除得的余数,即换算为二进制数的结果
52除以2 得到的余数依次为:
0
、
0
、
1
、
0
、
1
、
1
,倒序排列,所以 52 对应的二进制数就是110100。
由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。
于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。那么:(52)10=(00110100)2
以8位 来演示,再写几个:
1.第一种:
00000001 1
00000010 2
00000100 4
00001000 8
00010000 16
00100000 32
01000000 64
10000000 128
2.第二种:
00000001 1
00000011 3
00000111 7
00001111 15
00011111 31
00111111 63
01111111 127
3.第三种:
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
举个例子: 11101011
可分为:
11100000(上面第三种类型) 224
00001000(上面第一种类型) 8
00000011(上面第二种类型) 3
我们通过记住上面三种类型的转换,再用加 法(加法口算你会吧)立即得到结果:235
==================================================================================
方法二:
熟记以下排列,其实很Easy了,从右往 左,依次是前一个数的2倍:
256 128 64 32 16 8 4 2 1
随便写个数字比如48
48 = 32 + 16,所以在32 和 16所在的位置为1,其余为0,
转为2进制就是
256 128 64 32 16 8 4 2 1
0 0 0 1 1 0 0 0 0
二进制转十进制就更简单了,
比如随便写的一串 01111101
先写上 : 0 1 1 1 1 1 0 1
然后填充 128 64 32 16 8 4 2 1
十进制为 64+32+16+8+4+1=125