day2 - 进制转换,原码反码补码,运算符总结

2026年09月28日 08:45
有1个网友回答
网友(1):

1)十进制
a.基数:0到9
b.进位:逢十进一 ->10 == 10
c.位权:123 = 100+20+3 = 1×10^2 + 2×10^1 + 3×10^0

2)二进制
a.基数:0和1
b.进位:逢二进一 ->10 == 2
c.位权:111(2)= 1×2^2 + 1×2^1 + 1×2^0 = 7(10)
d.表示方式:在二进制数前加前缀0b/B
e.转换:bin()

3)八进制
a.基数:0到7
b.进位:逢八进一 ->10 == 8
c.位权:111(8)= 1×8^2 + 1×8^1 + 1×8^0 =73(10)
d.表示方式:在八进制数前加前缀0o/O
e.转换:oct()

4)十六进制
a.基数:0到9,a到f a(10)b(11)c(12)d(13)e(14)f(15)
b.进位:逢十六进一 ->10 == 16
c.位权:111(8)= 1×16^2 + 1×16^1 + 1×16^0 =273(10)
d.表示方式:在十六进制数前加前缀0x/X
e.转换:hex()

单位换算:
位(bit)
1字节(byte)= 8bit
1kb = 1024byte
1M = 1024kb
1G = 1024M
1T = 1024G

注意:正数的原码,反码和补码一样
1.原码 = 符号位(0表示正,1表示负)+真值(数字转换成2进制的值)
10的原码: 00000000 00000000 00000000 00001010
-10的原码:10000000 00000000 00000000 00001010

2.负数的反码:符号位不变,其他位取反(0变1,1变0)
10的反码:00000000 00000000 00000000 00001010
-10的原码:11111111 11111111 11111111 11110101

3.负数的补码:反码加1
10的补码:00000000 00000000 00000000 00001010
-10的补码:11111111 11111111 11111111 11110110

Example:
2 + (- 3) == -1
2的原码: 00000010
-3的原码: 10000011 ->(反码)11111100->(补码)11111101
2-3 = 00000010 + 11111101 = 11111111(补)->(反)11111110->(原)10000001 = -1

python支持的运算符:数学运算符,比较运算符,逻辑运算符,位运算符,赋值运算符
数学运算符:+,-, ,/, %(取余),//(整除), *(幂运算)
1) print(10 % 3) # 求10除以3的余数
求余的作用:
判断一个数是否能被另外一个数整除
判断一个数的奇偶性:让数字对2取余,看结果是0还是1
判断一个数的最后几位

2)// - 求商,取商的整数部分

3)** - 求次方值
x ** y - 求x的y次方

比较运算符:>, <, >=, <=, ==, !=