一.进制介绍
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补位
5.十进制转八进制
(1)计算方法:将该数一直除8,直到除不了,然后把每步的余数反方向拼接,就是对应的8进制
(2)例题:131转为八进制:0203
6.十进制转十六进制
(1)计算方法:将该数一直除16,直到除不了,然后把每步的余数反方向拼接,就是对应的16进制
(2)例题:237转为十六进制:0xED
7.二进制转八进制
(1)计算方法:从低位开始,将二进制数每三位为一组,转成对应的八进制数在反转即可
(2)例题:0b11010101转为八进制:0325
8.二进制转十六进制
(1)计算方法:从低位开始,将二进制数每四位为一组,转成对应的十六进制数在反转即可
(2)例题:0b11010101转为十六进制:0xD5
9.八进制转二进制
(1)计算方法:将八进制的每一位,转为对应的一个3位的二进制数(不反转,直接从左向右算)
(2)例题:将0237转为二进制:0b10011111
10.十六进制转二进制
(1)计算方法:将十六进制的每一位,转为对应的一个4位的二进制数(不反转,直接从左向右算)
(2)例题:将0x23B转为二进制:0b0010 0011 1011
三.位运算
1.原码
(1)是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值
2.反码
(1)正数的反码还是等于原码
(2)负数的反码就是他的原码除符号位外,按位取反
3.补码
4.注意:
(1)二进制最高位是符号位,0代表正数,1代表负数
(2)正数的原码,反码,补码都一样
(3)负数的反码=原码符号位不变,其他位取反
(4)负数的补码=他的反码+1;负数的反码=他的补码-1
(5)0的反码,补码都是0
(6)计算机运算时,都是以补码的方式来运算。当我们看结果时,要看原码
5.按位与—&
6.按位或—|
7.按位异或—^
8.按位取反—~
9.算数右移—>>
(1)计算规则:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0
10.逻辑右移—>>>
(1)计算规则:表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
11.算数左移—<<
(1)计算规则:用来将一个数的各二进制位全部左移N位,右补0
(2)没有逻辑左移