|
将二进制转换成十进制十进制计数系统使用数字 0 至 9 和 10 的指数幂来表示一个数。例如,十进制数 103 是 1x102 + 0x101 + 3x100 的和。二进制计数系统使用数字 1 和 0 及 2 的指数幂来表示一个数。二进制数 10011 是 1x24 + 0x23 + 0x22 + 1x21 + 1x20 的和。其中1x20=1。点分十进制表示形式永远不会包含大于 255 的数,因为其中的各个十进制数分别代表 32 位地址的 8 位。8 位能够表示的最大二进制数是 11111111,即十进制数 255。 要手动将一个 8 位二进制数从二进制转换成十进制,请执行以下操作:
1.如果第八个位等于 1,则向总数增加 128。 2.如果第七个位等于 1,则向总数增加 64。 3.如果第六个位等于 1,则向总数增加 32。 4.如果第五个位等于 1,则向总数增加 16。 5.如果第四个位等于 1,则向总数增加 8。 6.如果第三个位等于 1,则向总数增加 4。 7.如果第二个位等于 1,则向总数增加 2。 8.如果第一个位等于 1,则向总数增加 1。
例如,对于 8 位二进制数 10111101: 1.第八个位等于 1,所以向总数增加 128。总数现在是 128。 2.第七个位等于 0。 3.第六个位等于 1,所以向总数增加 32。总数现在是 160。 4.第五个位等于 1,所以向总数增加 16。总数现在是 176。 5.第四个位等于 1。所以向总数增加 8。总数现在是 184。 6.第三个位等于 1。所以向总数增加 4。总数现在是 188 7.第二个位等于 0。 8.第一个位等于 1。所以向总数增加 1。总数现在是 189。 这样,二进制数 10111101 就是十进制数 189。 总而言之,将二进制数转换成与其相等的十进制数,就是对与值为 1 的位相等的十进制数求和。如果 8 位的值全部为 1,则转换成的十进制数就是 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1,即 255。 将十进制数转换成二进制数 要手动将一个小于等于 255 的数从十进制表示形式转换成二进制格式(从图 3-2 中的十进制列开始),请执行以下操作:
1.如果要转换的数大于 127,则将第八个位设为 1,并从该数中减去 128。否则,将第八个位设为 0。 2.如果余数大于 63,则将第七个位设为 1,并从该数中减去 64。否则,将第七个位设为 0。 3.如果余数大于 31,则将第六个位设为 1,并从该数中减去 32。否则,将第六个位设为 0。 4.如果余数大于 15,则将第五个位设为 1,并从该数中减去 16。否则,将第五个位设为 0。 5.如果余数大于 7, 则将第四个位设为 1,并从该数中减去 8。否则,将第四个位设为 0。 6.如果余数大于 3, 则将第三个位设为 1,并从该数中减去 4。否则,将第三个位设为 0。 7.如果余数大于 1, 则将第二个位设为 1,并从该数中减去 2。否则,将第二个位设为 0。 8.如果余数等于 1, 则将第一个位设为 1。否则,将第一个位设为 0。 下面是将数 197 从十进制转换成二进制的示例:
1.因为 197 大于 127,所以将第八个位设为 1,并从 197 中减去 128,剩余 69。此二进制数这时暂写作 1xxxxxxx。 2.因为 69 大于 63,所以将第七个位设为 1,并从 69 中减去 64,剩余 5。此二进制数这时暂写作 11xxxxxx。 3.因为 5 不大于 31,所以将第六个位设为 0。此二进制数这时暂写作 110xxxxx。 4.因为 5 不大于 15,所以将第五个位设为 0。此二进制数这时暂写作 1100xxxx。 5.因为 5 不大于 7,所以将第四个位设为 0。此二进制数这时暂写作 11000xxx。 6.因为 5 大于 3,所以将第三个位设为 1,并从 5 中减去 4,剩余 1。此二进制数这时暂写作 110001xx。 7.因为 1 不大于 1,所以将第二个位设为 0。此二进制数这时暂写作 1100010x。 8.因为 1 等于 1,所以将第一个位设为 1。最终得到的二进制数为 11000101。十进制数 197 就等于二进制数 11000101。 总之,要将十进制数转换成二进制数,需要验证十进制数是否包含第八位至第一位各个位所代表的数值。从第八位的数值 (128) 开始,如果一个位所表示的数值存在,就将此位设为 1。例如,十进制数 211 包含 128、64、16、2 和 1,因此 211 的二进制表示形式为 11010011。 十六进和二进制互相转换 十六进制和十进制的前10个数字是一样的,所以在十六进制数前面加一个0x,或者在后面加一个h,以便和十进制数区别,例如十六进制25因该表示成0x25,或者25h,我这里用0x来表示。 根据刚才学到的二进制和十进制互相转换的表示法,很容易就知道十六进制和十进制之间的转换计算,这里就不再复述。 将2进制转换为十六进制3个步骤 1. 将八位组分成2个4位的二进制数 2. 将每个4位二进制转为十进制 3. 把每个十进制数用十六进制来表示
例如,把11010011转为十六进制 1. 把11010011变成 1101和0011 2. 1101=8+4+1=13,0011=2+1=3 3. 13=0xD,3=0x3 所以,1101011用十六进制表示就是0xD3 十六进制转为二进制是上述3步骤的简单反序运算,例如将0x7B转为二进制: 1.0x=7,0xB=11。 2.7=0111,11=1011。 3.把2个4位二进制数写在一起就是0x7B=01111011,十进制为123。
|
一共有 1 条评论