我正在运行 Python 2.7 脚本,最近我在从浮点数到 uint8 时遇到了这个转换问题,其中负值不是剪辑为 0 而是 256 - 值。简化我的代码,它可能看起来像这样a = -72.0b = np.array(a, dtype=np.uint8)c = np.array(np.clip(a,0,255),dtype=np.uint8)print 'a =',a, 'b =',b, 'c =', ca = -72.0 b = 184 c = 0我只是想了解为什么 b 没有设置为 0,而是转为 256-72=184。如果有人对我可以阅读的数据类型有一个解释或一个好的链接,那就太好了。
1 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
我相信我找到了自己的答案,这与如何以二进制解释有符号数和无符号数有关。因此,当我由于 uint8 而从有符号 -72 变为无符号时,它们都以相同的方式在二进制级别写入。只是一个读数为-72,另一个读数为+184
添加回答
举报
0/150
提交
取消