概念
整型分为 有符号整型 和 无符号整型,其区别在于 无符号整型 可以存放的正数范围 比 有符号整型 大一倍,因为 有符号整型 将最高位存储符号,而 无符号整型 全部存储数字
# 1 1110000101010101111 有符号整型 最高位 代表符号 # 1 1110000101010101111 无符号整型 最高位 代表数字
比如16位系统中一个int能存储的数据的范围为 -32768~32767,而unsigned能存储的数据范围则是0~65535。
通俗解释就是 无符号整型 中只有正数,他把负数用正数表示。
在一些不可能取值为负数的时候,可以定义为unsigned,在一些底层的嵌入式编程的数据一般都是无符号的。
Python 示例
int 代表有符号,uint 代表无符号
import numpy as np # 有符号整型 a = np.int(10) b = np.int(5) print(a - b) # 5 print(b - a) # -5 # 无符号整型 a = np.uint(10) b = np.uint(5) print(a - b) # 5 print(b - a) # 4294967291 print((b - a).astype(np.float32)) # 这样并没有把无符号整型转换成有符号
参考资料:
https://baike.baidu.com/item/%E6%97%A0%E7%AC%A6%E5%8F%B7%E6%95%B4%E5%9E%8B/6717424?fr=aladdin