#二进制: 0 1 逢二进一
0 + 0 = 0
0 + 1 = 1
1 + 1 = 10 #腰零,不是十
11 + 1 = 100
#八进制 0 1 2 3 4 5 6 7
1 + 7 = 10
1 + 2 = 3
#十六进制 0 1 2 。。。8 9 a b c d e f
1 + f =10
#内存地址是用十六进制数表示的
1、十进制转二进制
用短除
e.g. 10(10)-> 1010(2)
2、二进制转十进制
当前数字乘以2的位数次方,最后相加 #程序员是从0开始数的
e.g. 1010(2)-> 10 (10)
3、八进制转二进制
八进制的一位相当于二进制的三位,转换时按十进制来
e.g. 65 可以转出六位二进制 把6和5分别当十进制数进行转换 得 110 101
#8421法,看8421中哪几个相加是这个数,他们下边就是1其他的是0,省略最高位的0
4、十六进制转二进制
十六进制的一位相当于二进制的四位,转换时按十进制来
e.g. a4 -> 10100100
#数据存储
计算机存储数据先开辟内存空间,再存储,开辟内存空间的最小单位是字节 8位。
在存储数据时,32位电脑会凑够32位 4个字节 用最高位标识符号 1为负0为正
1010(2) 中有四个‘开关’ 一个字节
00000000000000000000000000001010
#原码---规定了字节数,写明了符号位
00000000000000000000000000000001 #正1
#反码---正数的反码是其原码,负数反码是其原码符号位不动其他位取反(0变成1,1变成0)
#补码---正数的补码是其原码,负数的补码是其反码加1
11111111111111111111111111111111 #负一的补码
#补码变原码
11111111111111111111111111111111 #把它看做负数的原码求其补码
10000000000000000000000000000000 #先变成反码
10000000000000000000000000000001 #再加一
#计算机以补码的形式存储数据
5、位运算-----把数按二进制来运算
& | ! ^(异或) ~(按位取反)
6、#<< 左移运算符----各二进制位全部左移<<右侧数字的位数,高位丢弃,低位补0
print(2<<2)
00000000010
00000001000
#>> 右移
1、进制与数据存储
最新推荐文章于 2022-05-29 00:32:06 发布