3 回答

TA貢獻1853條經(jīng)驗 獲得超6個贊
無符號可以保持較大的正值,而不是負值。
是。
無符號使用前導位作為值的一部分,而帶符號版本使用最左側(cè)位來標識數(shù)字是正數(shù)還是負數(shù)。
表示有符號整數(shù)的方法有很多種。最容易想象的是使用最左邊的位作為標志(符號和幅度),但更常見的是兩個補碼。兩者都在大多數(shù)現(xiàn)代微處理器中使用 - 浮點使用符號和幅度,而整數(shù)運算使用二進制補碼。
有符號整數(shù)可以包含正數(shù)和負數(shù)。
是

TA貢獻1858條經(jīng)驗 獲得超8個贊
我將在x86上的硬件級別上進行分析。除非您正在編寫編譯器或使用匯編語言,否則這幾乎無關緊要。但很高興知道。
首先,X86具有原生的支持二進制補碼符號數(shù)的表示。您可以使用其他表示形式,但這需要更多指令,通常會浪費處理器時間。
“原生支持”是什么意思?基本上我的意思是你有一組用于無符號數(shù)字的指令和另一套用于有符號數(shù)字的指令。無符號數(shù)字可以與有符號數(shù)字位于相同的寄存器中,實際上,您可以混合有符號和無符號指令,而無需擔心處理器。由編譯器(或匯編程序員)來跟蹤數(shù)字是否已簽名,并使用適當?shù)闹噶睢?/p>
首先,二進制補碼數(shù)具有加法和減法與無符號數(shù)相同的特性。數(shù)字是正數(shù)還是負數(shù)沒有區(qū)別。(所以你只需要繼續(xù),ADD
并且SUB
不用擔心你的數(shù)字。)
在進行比較時,差異開始顯現(xiàn)。x86有一種區(qū)分它們的簡單方法:上/下表示無符號比較,大于/小于表示已簽名比較。(例如,JAE
“如果大于或等于跳躍”并且是未簽名的。)
還有兩組乘法和除法指令來處理有符號和無符號整數(shù)。
最后:如果你想檢查溢出,你會對簽名和無符號數(shù)做不同的處理。

TA貢獻1831條經(jīng)驗 獲得超10個贊
他只詢問簽名和未簽名。不知道為什么人們會在這里添加額外的東西。讓我告訴你答案。
無符號:它僅包含非負值,即0到255。
簽名:它包含負值和正值,但格式不同
0到+127
-1到-128
這個解釋是關于8位數(shù)字系統(tǒng)。
添加回答
舉報