一.进制介绍

1.对于整数,有四种表示方法:

(1)二进制:满2进1,以0b或0B开头表示

  • 0b1010

(2)八进制:满8进1,以数字0开头表示

  • 01010

(3)十进制:满10进1

  • 1010

(4)十六进制:满16进1,以0x或0X开头表示

  • 0x10101

    2.进制图表

    | 二进制 | 八进制 | 十进制 | 十六进制 | | —- | —- | —- | —- | | 0000 | 0 | 0 | 0 | | 0001 | 1 | 1 | 1 | | 0010 | 2 | 2 | 2 | | 0011 | 3 | 3 | 3 | | 0100 | 4 | 4 | 4 | | 0101 | 5 | 5 | 5 | | 0110 | 6 | 6 | 6 | | 0111 | 7 | 7 | 7 | | 1000 | 10 | 8 | 8 | | 1001 | 11 | 9 | 9 | | 1010 | 12 | 10 | A或a | | 1011 | 13 | 11 | B或b | | 1100 | 14 | 12 | C或c | | 1101 | 15 | 13 | D或d | | 1110 | 16 | 14 | E或e | | 1111 | 17 | 15 | F或f | | 10000 | 20 | 16 | 10 |

二.进制转换

1.二进制转十进制

(1)计算方法:从最低位(右边)开始,将每个数提取出来,乘以2的(位数-1)次方,然后求和

  • 位数也是从右侧开始算,从1开始累加

(2)例题:0b1011转为十进制:二进制开头的0b是标识,不参与计算

  • 12^(1-1)+12^(2-1)+02^(3-1)+12^(4-1)=1+2+0+8=11
  • 次方可以用^表示:12^(2-1)—->12的(2-1)次方

    2.八进制转十进制

    (1)计算方法:从最低位(右边)开始,将每个数提取出来,乘以8的(位数-1)次方,然后求和

  • 位数也是从右侧开始算,从1开始累加

(2)例题:0234转为十进制:0是八进制开头的标识,不参与计算

  • 48^(1-1)+38^(2-1)+2*8^(3-1)=4+24+128=156

    3.十六进制转十进制

    (1)计算方法:从最低位(右边)开始,将每个数提取出来,乘以16的(位数-1)次方,然后求和

  • 位数也是从右侧开始算,从1开始累加

(2)例题:0x23A转为十进制:0x是十六进制开头的标识,不参与计算

  • 1016^(1-1)+316^(2-1)+2*16^(3-1)=10+48+512=570

    4.十进制转二进制

    (1)计算方法:将该数一直除2,直到除不了,然后把每步的余数反方向拼接,就是对应的2进制
    (2)例题:34转为二进制:0b00100010

  • 一个字节8位,不够就用0补位

进制转换 位运算 - 图1

5.十进制转八进制

(1)计算方法:将该数一直除8,直到除不了,然后把每步的余数反方向拼接,就是对应的8进制
(2)例题:131转为八进制:0203
进制转换 位运算 - 图2

6.十进制转十六进制

(1)计算方法:将该数一直除16,直到除不了,然后把每步的余数反方向拼接,就是对应的16进制
(2)例题:237转为十六进制:0xED
进制转换 位运算 - 图3

7.二进制转八进制

(1)计算方法:从低位开始,将二进制数每三位为一组,转成对应的八进制数在反转即可
(2)例题:0b11010101转为八进制:0325
进制转换 位运算 - 图4

8.二进制转十六进制

(1)计算方法:从低位开始,将二进制数每四位为一组,转成对应的十六进制数在反转即可
(2)例题:0b11010101转为十六进制:0xD5
进制转换 位运算 - 图5

9.八进制转二进制

(1)计算方法:将八进制的每一位,转为对应的一个3位的二进制数(不反转,直接从左向右算)
(2)例题:将0237转为二进制:0b10011111
进制转换 位运算 - 图6

10.十六进制转二进制

(1)计算方法:将十六进制的每一位,转为对应的一个4位的二进制数(不反转,直接从左向右算)
(2)例题:将0x23B转为二进制:0b0010 0011 1011
进制转换 位运算 - 图7

三.位运算

1.原码

(1)是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值

2.反码

(1)正数的反码还是等于原码
(2)负数的反码就是他的原码除符号位外,按位取反

3.补码

(1)正数的补码等于他的原码
(2)负数的补码等于反码+1

4.注意:

(1)二进制最高位是符号位,0代表正数,1代表负数
(2)正数的原码,反码,补码都一样
(3)负数的反码=原码符号位不变,其他位取反
(4)负数的补码=他的反码+1;负数的反码=他的补码-1
(5)0的反码,补码都是0
(6)计算机运算时,都是以补码的方式来运算。当我们看结果时,要看原码

5.按位与—&

(1)规则:两位全为1,结果为1,否则为0

6.按位或—|

(1)规则:两位有一个为1,结果为1,否则为0

7.按位异或—^

(1)规则:两位一个为0,一个为1时,结果为1,否则为0

8.按位取反—~

(1)规则:0变成1,1变成0
进制转换 位运算 - 图8

9.算数右移—>>

(1)计算规则:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0

10.逻辑右移—>>>

(1)计算规则:表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0

11.算数左移—<<

(1)计算规则:用来将一个数的各二进制位全部左移N位,右补0
(2)没有逻辑左移
进制转换 位运算 - 图9