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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM