亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

簽名與無符號整數

簽名與無符號整數

我是否正確地說有符號和無符號整數之間的區別是:無符號可以保持較大的正值,而不是負值。無符號使用前導位作為值的一部分,而帶符號版本使用最左側位來標識數字是正數還是負數。有符號整數可以包含正數和負數。還有其他差異嗎?
查看完整描述

3 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

無符號可以保持較大的正值,而不是負值。

是。

無符號使用前導位作為值的一部分,而帶符號版本使用最左側位來標識數字是正數還是負數。

表示有符號整數的方法有很多種。最容易想象的是使用最左邊的位作為標志(符號和幅度),但更常見的是兩個補碼。兩者都在大多數現代微處理器中使用 - 浮點使用符號和幅度,而整數運算使用二進制補碼。

有符號整數可以包含正數和負數。


查看完整回答
反對 回復 2019-09-18
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

我將在x86上的硬件級別上進行分析。除非您正在編寫編譯器或使用匯編語言,否則這幾乎無關緊要。但很高興知道。

首先,X86具有原生的支持二進制補碼符號數的表示。您可以使用其他表示形式,但這需要更多指令,通常會浪費處理器時間。

“原生支持”是什么意思?基本上我的意思是你有一組用于無符號數字的指令和另一套用于有符號數字的指令。無符號數字可以與有符號數字位于相同的寄存器中,實際上,您可以混合有符號和無符號指令,而無需擔心處理器。由編譯器(或匯編程序員)來跟蹤數字是否已簽名,并使用適當的指令。

首先,二進制補碼數具有加法和減法與無符號數相同的特性。數字是正數還是負數沒有區別。(所以你只需要繼續,ADD并且SUB不用擔心你的數字。)

在進行比較時,差異開始顯現。x86有一種區分它們的簡單方法:上/下表示無符號比較,大于/小于表示已簽名比較。(例如,JAE“如果大于或等于跳躍”并且是未簽名的。)

還有兩組乘法和除法指令來處理有符號和無符號整數。

最后:如果你想檢查溢出,你會對簽名和無符號數做不同的處理。


查看完整回答
反對 回復 2019-09-18
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

他只詢問簽名和未簽名。不知道為什么人們會在這里添加額外的東西。讓我告訴你答案。

  1. 無符號:它僅包含非負值,即0到255。

  2. 簽名:它包含負值和正值,但格式不同

    • 0到+127

    • -1到-128

這個解釋是關于8位數字系統。


查看完整回答
反對 回復 2019-09-18
  • 3 回答
  • 0 關注
  • 694 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號