二进制、十进制和十六进制的转换

二进制只使用数字0 和1 ,其中每个数字对应于一位( 二进制位)。通常,我们将每4 位或8 位作为一组,分别称它们为半字节(nibble) 和字节。

我们感兴趣的是二进制值对应的十进制值一一十进制以10 为基数,我们从幼儿园起就开始使用

它了。二进制位按从右向左的顺序排列,每向左移动一位,位值就翻一倍。

表2-1 列出了半字节和字节中各位代表的十进制值。别忘了,半字节包含4 位, 字节包含8 位。

这意味着如果某一位的取值为1 ,则计算半字节或字节对应的十进制值时,应将其位值与其他所

有取值为1 的位值相加。如果为0 ,则不考虑。

下面更详细地阐述这一点。如果半字节的每一位都为1 ,则将8、4 、2 和1 相加,结果为15一一

半字节的最大取值。假设半字节的取值是1010 ,即位值为8 和2 对应的位为1 ,则对应的十进制值为

10。如果半字节的取值为0110 ,则对应的十进制值为6 ,因为位值4 和2 对应的位为1 。

然而,字节的最大取值比15 要大得多,因为如果字节中每位都为1 ,则其取值如下(别忘了, 字

节包含8 位):

11111111

此时若要计算字节对应的十进制值,可将所有取值为1 的位的位值相加,如下所示:

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

这是字节的最大可能取值。

二进制数还可对应众多其他的十进制值,下面来看一些例子。假设二进制数取值如下:

10010110

哪些位的取值为1 呢?答案是位值为128 、16 、4 和2 的位,因此只需将这些位值相加: 128+ 16+4+

2= 150。再举个例子,假设二进制数取值如下:

01101100

哪些位的取值为1 呢?答案是位值为64 、32 、8 和4 的位,因此只需将这些位值相加: 64+32+8+4=

108。再者,如果二进制数取值如下:

11101000

哪些位的取值为1 呢?答案是位值为128 、64、32 和8 的位,因此只需将这些位值相加: 128+64+32+8=232 。

阅读第3 章和第4 章与IP 相关的内容前,你应牢记表2-2 的内容。

十六进制地址与二进制和十进制完全不同,我们通过读取半字节将二进制转换为十六进制。通过

半字节,我们可轻松地将二进制转换成十六进制。首先需要明白的是,十六进制只能使用数字0-9 ,

而不能使用10 、11 、12 等(因为它们是二位数),因此使用A 、B 、C、D 、E 和F 分别表示10 、11 、

12 、13 、14 和15 。

十进制使用10 个数字,十六进制又使用了字母表的前6 个字母,即A-F。

表2-3 列出了每个十六进制数字对应的二进制值和十进制值。

前10个十六进制数字(0-9 )与相应的十进制值相同,你注意到了吗?因此,这些值转换起来非

常容易。

假设有十六进制数Ox6A (有时候,思科喜欢在字符前添加Ox , 让你知道它们是十六进制值。Ox

并没有其他特殊含义),它对应的二进制值和十进制值是多少呢?你只需记住,每个十六进制字符相

当于半字节,而两个十六进制字符相当于一字节。要计算该十六进制数对应的二进制值,可将这两个

字符分别转换为半字节,然后将它们合并为一个字节:6=0110 ,而A= 1010 ,因此整个字节为01101010 。

要从二进制转换为十六进制,只需将字节划分为半字节,下面具体解释这→点。

假设有二进制数01010101 。首先将其划分为半字节0101 和0101 ,这些半字节的值都是5 ,因为

取值为1 的位对应的位值分别是1 和4。因此,其十六进制表示为Ox55 。要将二进制数01010101 转换

为十进制数,方法为64 + 16 + 4 + 1 = 85 。

下面是另一个二进制数:

11001100

其中1100=12 , 1100= 12 ,因此它对应的十六进制数为cc。将其转换为十进制时,答案为128+64+

8 +4 =204

下面再介绍一个例子,假设有如下二进制数:

10110101

它对应的十六进制数为OxB5 ,因为1011 对应的十六进制值为B , 0101 对应的十六进制值为5 。将其

转换为十进制时,结果为128+32+ 16+4+ 1 = 181 。

时间: 2024-12-20 09:12:28

二进制、十进制和十六进制的转换的相关文章

二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

二进制、八进制、十进制、十六进制的转换

1. 二进制转换成八进制 方法:3位二进制数按权展开相加得到1位八进制数.(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0). 例子:11101 = 011 101 = 35 2. 二进制转换成十进制 方法:把二进制数按权展开,相加即得十进制数. 例子:11101  = 1*2的四次方 + 1*2的三次方 + 1*2的二次方 + 0*2的一次方 + 1*2的零次方 = 29 3. 二进制转换成十六进制 方法:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一.(注意事项

《转载》二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

二进制、八进制、十进制与十六进制的转换

进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制.八进制.十进制与十六进制,它们之间区别在于数运算时是逢几进一位. 二进制与十进制之间的转换 1 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止. (具体用法如下图) 2 二进制转十进制 方法为:把二进制数按权展开.相加即得十进制数. (具体用法如下图) 二进制与八进制之间的转换 1 二进制转八进制 方法为:3位二进制数按权展开相加

十进制和十六进制互相转换

def dec_hex(str1): #十转十六 a = str(hex(eval(str1))) b = a.replace("0x",'') print('十进制 \t%s\t十六进制\t%s'%(str1, a)) return b def hex_dec(str2): #十六转十 b = eval("0x" + str2) a = str(b).replace("0x",'') print('十六进制\t%s\t十进制 \t%s'%(st

二进制、八进制、十进制、十六进制之间的转换

  最近复习软考各种进制之间的转换着实让人头疼,今天把常用的几种进制之间的转换问题简单做个总结,希望能够对大家有所帮助.   二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7       二进制:000 001 010 011 100 101 110 111   实例:   27.651(8)  010111.110101001(2)   1001.000

十进制与二进制,八进制,十六进制的转换

(一)数制       计算机采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径,节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.特点: (1)逢n进一,n是每种进位进数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (二)数制转换       不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别一定相等的原则进行

二进制,八进制,十进制,十六进制之间的转换

二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7       二进制:000 001 010 011 100 101 110 111   实例:   27.651(8)  010111.110101001(2)   1001.000101(2)  11.05(8) 二进制与十进制的转换  二进制转换为十进制就是将二进制第i位的值乘以2的i-1次方.    

十进制与十六进制的相互转换

在面对十进制与十六进制的相互转换的问题时,可以借鉴十进制与二进制之间相互转换的思想. 以下是十进制与二进制之间转换的图解: 基于以上的思想,想出了十进制与十六进制的相互转换的类似方法: 十进制转十六进制: /* * 十进制转十六进制 * */ public class Test5 { public static void main(String[] args) { DtoH(195); } /* * 十进制转十六进制方法 * * @param x 待转换的十进制数 */ public stati