首先应该记住基本的进制对应关系:
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
二进制 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
十进制 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
十六进制 | 8 | 9 | A | B | C | D | E | F |
十六进制使用0~9和A~F来表示16个可能的值,以0x或者0X开头的数字常量一般被认为是十六进制的值。十六进制数F一个数就代表二进制数1111。所以十六进制数中一个数就代表是四位的二进制的数。如:0x0=0000(二进制)。
注意:当值x是2的非负整数n次幂的时候,即x=2的n次方,当这个十进制数x转换成二进制的时候,就是1后面跟上n个0!!!(记住)。再若转换成十六进制的时候就是从这个二进制数的右边开始,每四位即是一个十六进制数。详细转换规则接下来会详述。
一:二进制转十进制
例子:01001101-----------0*2的7次方+1*2的6次方+0*2(5次方)+....1*2(2)+0*2(1)+1*2(0)=77.
记住:由任意进制转换到十进制,全都是由原数据中某一位上的数据乘上此进制的n次方(1:一般为2的n次方或者是16的n次方。2:n是这一位的所在的位数,从零开始)。
二:十进制转换成二进制
例子:35----------35=2的5次方+2的1次方+2的1次方=100011
和一的反过来,这个十进制是由若干个2的n次方相加而成的,所以反推出来十进制数字的二进制表达方式。
三:二进制转换十六进制
例子:11001110110101--------0011 0011 1011 0101=0x33B5
首先应当从二进制数字的右边起每四位划分为一组,然后根据上边的表格中的数据,写成十六进制数字即可。注意,最左侧的数字不足以成为四位的时候自动补0即可。
四:十六进制转换二进制
例子:0x33B5=11001110110101
和上边的转换相类似倒推回去,每一个十六进制数字都会占据四位的二进制数字,所以可以根据上边的表格根据对应关系将每一个十六进制数字转换成四位的二进制数字。或者可以将每一位的十六进制的数字转换成十进制的数字之后再将十进制数字转换成四位二进制数字,只不过第二种方式更加繁琐。
五:十进制转换成十六进制:
例子:35---100011----0010 0011=0x23
以二进制为中间节点。十进制的数字先转换成二进制的式子,之后再根据二进制转换成十六进制的方法将这个二进制数字转换成十六进制。
六:十六进制转换十进制
例:0x23----0010 0011=35
类似的,以二进制为中间节点,进行转换,具体的转换方式已经在上文进行了描述。
必须要记住的重点:
1:在开始的表中,可以记不住,但是一定要记住推导出来的规则,二进制逢二进制一等等。
2:任何进制转换成十进制都是以他某一位上的数字乘上这个进制的进制数的n次方,n为这一位的位数,记住一定是从右侧开始以0数起。
3:在进制转换中二进制可以作为转换的中间节点进行转化。
4:任何一个十进制数在转换成二进制的时候都可以拆分成数个1*2的n次方,即为1后面跟上n个0.
5:记住,当两个进制数在进行运算的时候,如果不是同一进制下的数字,一定要先转换成相同的进制下的数,在进行运算。