进制基础知识

傻男人 1年前 ⋅ 881 阅读

进制相关知识

一、几个常见的进制

  • 十进制

0-9,满10进1

  • 二进制

0 1,满2进1

  • 八进制

0-7,满8进1

  • 十六进制

0-9及A-F,满16进1,以0x或者0X开头表示

二、进制相互转换

a、十进制

1、十进制转二进制

十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)

如 十进制89转换为二进制 89/2....1 44/2....0 22/2....0 11/2....1 5/2....1 2/2....0 1 准换为二进制为:1011001

2、十进制转八进制

十进制整数转八进制数:“除以8取余,逆序排列”(除八取余法)

如十进制89转换为八进制 89/8....1 11/8....3 1 准换为八进制为:131

3、十进制转十六进制

十进制整数转十六进制数:“除以16取余,逆序排列”(除16取余法)

如十进制89转换为十六进制 89/16....9 5 准换为十六进制为:59

b、二进制

1、二进制转十进制

整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加,首位如果是0就代表是正整数,如果首位是1则代表是负整数

如二进制1011转换为十进制 1011 = 1* 2^0 + 1 * 2^1 + 0* 2^2 + 1* 2^3 = 1+2+0+8=11 0.1010 = 0* 2^0 . 1* 2^(-1)+1* 2^(-2)+0* 2^(-3)+1* 2^(-4)=0.5+0.25+0+0.0625=0.8125

2、二进制转八进制

将二进制的每三位一组(低位开始),转成对应的八进制即可

如二进制10110101转换为八进制 10110101 = 10 110 101=265

3、二进制转十六进制

将二进制的每四位一组(低位开始),转成对应的十六进制即可

如二进制10110101转换为十六进制 10110101 = 1011 0101=B5

c、八进制

1、八进制转十进制

整数八进制用数值乘以8的幂次依次相加

如八进制2156转换为十进制 2156 = 68^0+58^1+18^2+28^3 = 6+40+64+1024=1134

2、八进制转二进制

将八进制每一位,转成对应的一个3位的二进制数即可

如八进制156转换为二进制 156 = 1 5 6 = 1 101 110 = 1101110

3、八进制转十六进制

八机制先转化为二进制,二进制再转化为十六进制

d、十六进制

1、十六进制转十进制

整数十六进制用数值乘以16的幂次依次相加

如十六进制3A转换为十进制 A3B = 1116^0+316^1+10*16^2 = 11+48+2560=2619

2、十六进制转二进制

将十六进制每一位,转成对应的一个4位的二进制数即可

如十六进制156转换为二进制 156 = 1 5 6 = 1 0101 0110 = 101010110

3、十六进制转八进制

十六机制先转化为二进制,二进制再转化为八进制

三、进制的运算

计算机内部处理的信息,都是采用二进制数来表示的

原码、反码、补码

对于有符号而言

  • 二进制的最高位是符号位,0表示正数,1表示负数

1 0000 0001 -1 1000 0001

  • 正数的原码、反码、补码都是一样的
  • 负数反码 等于 他原码符号位不变 + 其他位取反(0->1,1->0)
  • 负数的补码 等于 它的反码+1
数字原码反码补码
10000 00010000 00010000 0001
-11000 00011111 11101111 1111
  • 0的反码与补码都是0
  • 在计算机运算的时候,都是以补码的方式来运算的
运算符运算规则
&两位全为1,结果才为1,否则为0
|两位有一个为1时为1,结果为1,否则为0
^两位不相同时(1个为0,1个为1),结果为1,否则为0
>>低位溢出,符号位不变,并用符号位补溢出高位
<<符号位不变,低位补0

练习:

  • 2&3
2  0000 0010
3  0000 0011
   0000 0010  ---> 2
  • 2|3
2  0000 0010
3  0000 0011
   0000 0011  ---> 3
  • 2^3
2  0000 0010
3  0000 0011
   0000 0001  ---> 1
  • -2^3
-2  1000 0010
-2的反码  1111 1101
-2的补码  1111 1110
3        0000 0011
         1111 1101
结果转补码 1111 1100
补码转原码 1000 0011 ---> -3
  • 2>>3
2  0000 0010  --->   0000 0000 ---> 0
  • 2<<3
2  0000 0010   --->  0001 0000  ---> 16

全部评论: 0

    我有话说: