概念
整型分為 有符號整型 和 無符號整型,其區別在於 無符號整型 可以存放的正數范圍 比 有符號整型 大一倍,因為 有符號整型 將最高位存儲符號,而 無符號整型 全部存儲數字
# 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