日历

2008 11.18 Tue
      1
2345678
9101112131415
16171819202122
23242526272829
30      
«» 2008 - 11 «»

文章搜索

日志文章

2007年08月12日 14:59:51

进制转换基础

将二进制转换成十进制十进制计数系统使用数字 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 包含 12864162 1,因此 211 的二进制表示形式为 11010011
十六进和二进制互相转换
十六进制和十进制的前10个数字是一样的,所以在十六进制数前面加一个0x,或者在后面加一个h,以便和十进制数区别,例如十六进制25因该表示成0x25,或者25h,我这里用0x来表示。
根据刚才学到的二进制和十进制互相转换的表示法,很容易就知道十六进制和十进制之间的转换计算,这里就不再复述。
2进制转换为十六进制3个步骤
1.
将八位组分成24位的二进制数

2.
将每个4位二进制转为十进制
3.
把每个十进制数用十六进制来表示

例如,把11010011转为十六进制

1.
11010011变成 11010011
2.
1101=8+4+1=13
0011=2+1=3
3.
13=0xD
3=0x3

所以,1101011用十六进制表示就是0xD3
十六进制转为二进制是上述3步骤的简单反序运算,例如将0x7B转为二进制:
1.0x=70xB=11
2.7=011111=1011
3.24位二进制数写在一起就是0x7B=01111011,十进制为123

Tags: 学习   笔记   CISCO   思科   CCNA   网络   技术   信息化   互联网   电脑   合作愉快  

类别: 无分类 |  评论(1) |  浏览(8260) |  收藏
1楼 [匿名]gcusujck 2008年08月20日 11:36:07 Says:
%5Bb%5D%5Bsize=3%5D%E9%BE%99%E5%85%B4%E7%BD%91%E7%BB%9C%E6%98%AF%E5%9B%BD%E5%86%85%E4%B8
发表评论
看不清楚,换一张