numpy - 数据格式之 int 与 uint

概念

整型分为 有符号整型无符号整型,其区别在于 无符号整型 可以存放的正数范围 比 有符号整型 大一倍,因为 有符号整型  将最高位存储符号,而 无符号整型 全部存储数字

# 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

猜你喜欢

转载自www.cnblogs.com/yanshw/p/11338459.html
今日推荐