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

1.进制转换

计算机只能存储和处理二进制数据

int类型 - 包含所有的整数,整数可以表示为十进制,二进制,八进制和十六进制

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()

 2进制
num = 0b1011   # 2^3 + 2^1 + 2^0 = 11
num2 = 0B110
print(num, num2)     # 11  6
print('转2进制:', bin(200), bin(0o56), bin(0xaf))
 8进制
num = 0o67    # 6*8^1 + 7 = 48+7 = 55
print(num)       #55
print('转8进制:', oct(200), oct(0b110111), oct(0x1f))
16进制
num = 0x34    # 16*3 + 4 = 52
num2 = 0x2f   # 16 * 2 + 15 = 32 + 15 = 47
print(num, num2)
print('转16进制', hex(200), hex(0b1110110110101))

2.原码反码补码

计算机存数据的时候只能存数字,而且存的是数字二进制的补码

单位换算:
位(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

计算机用原码计算会出错,所以用补码计算(原因是计算机没有减法器)

3.运算符

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

print(num % 10)   # 取一个数的个位数
print(num % 100)

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

print(5//2)  # 2
num = 123
print(num//100)  # 1 (取百位)
print(num % 10)  # 3 (取个位)
print(num // 10 % 10)  # 2(取十位)
print(num % 100 // 10)  # 2(取十位)

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


print(2**3)     # 8
print(16 ** 0.5)  # 4 (开2次方)
print(8 ** 3)  # 2 (开3次方)

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

所有比较运算符的结果都是布尔值(不是True就是False)

!=判断是否不相等

注意:python中比较大小可以像数学一样连写表示范围

x = 5
print(1 <= x <= 100)         # True
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容