# 简单来说，按位运算就把数字转换为机器语言——二进制的数字来运算的一种运算形式。在计算机系统中，数值一律用补码来表示(存储)
# 但是我们看到的二进制数值却是数值的原码，而计算机在运算时却是用的数值的补码。正数的补码即是它本身，负数转换位原码的方法是减一取反
# 3的二进制补码是11，5的是101，-1的补码是11111111，-2的补码是11111110
# 对于负数来说，将原数按位取反后+1=原数的补码  原数：在计算机中用2进制的方式表示一个普通数字所形成的数就是原数

### 计算机中的负数表示：
# 将原数按位取反后+1=原数的补码(原数的反数)
# 原数：在计算机中用2进制的方式表示一个普通数字所形成的数就是原数
#         例如：5=00000000 00000000 00000000 00000101
# 5取反后就为11111111 11111111 11111111 11111010其结果+1就是原数的补码即为-5的2进制表示,在计算机系统中，数值一律用补码来表示(存储)

# bin可以把十进制的数转换成二进制的数。
print(bin(10))
# 而oct则会把十进制的数字转换成八进制格式的数字，0o开头就是八进制的数字
print(oct(10))
# hex则可以把传入的十进制转换成十六进制的类型，哈哈，非常简单吧！
print(hex(10))

# int可以把二进制类型的数字转换成十进制的格式，同理，我们也可以把八进制和十六进制的数字进行转换哦，注意活学活用呀。
print(int('1010',2))
print(int('37',8))
print(int('4a',16))

# 这样似乎更方便
print(0b1010)
print(0o37)
print(0x4a)
print(0x4e)
print(hex(79))
print(hex(80))