2进制10进制16进制之间的转换,包含负数。
前言:转换原则
- 以byte为例,1byte即一个字节,1字节=8bit位,转16进制标准:每四位(bit位)取成一位。
- 十六进制中的[0-9]与十进制中的[0-9]表示意义相同,其他数字见下表
- 所有的进制之间只能通过2进制进行转换,如:16进制无法直接转10进制,必须先转2进制再转10进制。
16进制[A-F]与10进制、2进制转义表
16进制 | a | b | c | d | e | f |
---|---|---|---|---|---|---|
10进制 | 10 | 11 | 12 | 13 | 14 | 15 |
2进制 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
一:2进制转16进制
例如十进制数10,写成2进制:0000 1010
按照每4位取成一位的标准,前面的0000写作0,后面的1010表示的十进制是10,即为取10进制的a
十的16进制:0a (也可写作0x1a)
二: 2进制中的负数如何转换成16进制
例如10进制中的一个字节的-54:
1.先写成正数的二进制
54的二进制
0011 0110
2. 取反
1100 1001
3.加一
1100 1010
4.按照每四位合成一位转换成16进制
ca
也可写作0xca
三、16进制转10进制
例如:0xc9
步骤:
1.先转二进制,一位代表4位的原则
c=12
1100 1001
2.2进制转10进制
2 7 ∗ 1 + 2 6 ∗ 1 + 2 5 ∗ 0 + 2 4 ∗ 0 + 2 3 ∗ 1 + 2 2 ∗ 0 + 2 1 ∗ 0 + 2 0 ∗ 1 = 201 2^7*1+2^6*1+2^5*0+2^4*0+2^3*1+2^2*0+2^1*0+2^0*1 =201 27∗1+26∗1+25∗0+24∗0+23∗1+22∗0+21∗0+20∗1=201
位运算
1. and运算(与、&)
原则:相同位的两个数字都为1,则为1;若有一个不为1,则为0
2. or运算 ( 或、|)
原则:相同位只要一个为1即为1。
3.xor运算(亦或、^)
原则:相同位不同则为1,相同则为0。