| 5 | 1/1 | 返回列表 |
| 查看: 2128 | 回復(fù): 7 | |||
| 本帖產(chǎn)生 1 個(gè) 程序強(qiáng)帖 ,點(diǎn)擊這里進(jìn)行查看 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
半片紅楓葉木蟲 (小有名氣)
|
[求助]
int型數(shù)值范圍為什么是-32768~32767
|
||
| int型數(shù)值范圍為什么是-32768~32767 |

木蟲 (正式寫手)
|
就討論16位int的情形吧,這是個(gè)數(shù)學(xué)問題 整型數(shù)在計(jì)算機(jī)里面都是按照“補(bǔ)碼”來存儲(chǔ)的,補(bǔ)碼是什么呢?請(qǐng)看: 0. 補(bǔ)碼的最高位,代表符號(hào)位,0為正1為負(fù) 1. 對(duì)于正整數(shù),補(bǔ)碼和該整數(shù)的二進(jìn)制碼一樣 2. 對(duì)于負(fù)整數(shù),相當(dāng)于對(duì)其絕對(duì)值的二進(jìn)制碼按位取反,然后+1,最后再把符號(hào)位置為1(當(dāng)然還可以有更簡(jiǎn)便的算法【數(shù)學(xué)里面叫有限域的算法,用模運(yùn)算來計(jì)算可能比較符合一般習(xí)慣一點(diǎn)】,不過邏輯電路層面是這么實(shí)現(xiàn)的,個(gè)人認(rèn)為這么說明比較底層一點(diǎn) )來幾個(gè)直觀的例子: +3的補(bǔ)碼是0000 0000 0000 0011 -1的絕對(duì)值為1,按位取反為1111 1111 1111 1110,+1之后是1111 1111 1111 1111,再置最高位為1,于是最終結(jié)果就是1111 1111 1111 1111 再來看-2,絕對(duì)值為2,于是二進(jìn)制表達(dá)為0000 0000 0000 0010,按位取反為1111 1111 1111 1101,+1之后(再置最高位為1)是1111 1111 1111 1110 從數(shù)學(xué)上看,正好-2就像是在-1的基礎(chǔ)上“減一”得到了 好,那么一直這么算下去,于是 1000 0000 0000 0000 這個(gè)是多少呢? 按照補(bǔ)碼的規(guī)則,他可以是+32767(0111 1111 1111 1111)再加1得到~然則最高位是符號(hào)位,這又是一個(gè)負(fù)值,按補(bǔ)碼解析的時(shí)候,這必須是一個(gè)負(fù)值... 好,稍微扯遠(yuǎn)一點(diǎn)點(diǎn),-32767的補(bǔ)碼是多少?是: 1000 0000 0000 0001 再減一呢?就得到了 1000 0000 0000 0000 于是把這個(gè)解析為-32768是合理的~~~ 【歷史回顧】 啊啊,為神馬需要補(bǔ)碼這么麻煩? 這是因?yàn)殡娐穼?shí)現(xiàn)的時(shí)候不想重復(fù),加法和減法想一起實(shí)現(xiàn)了~ 3-1=2 這么算似乎很簡(jiǎn)單,但是計(jì)算機(jī)是這么算的:(+3) + (-1) 0000 0000 0000 0011 加上 1111 1111 1111 1111 --------------------------------------------- 0000 0000 0000 0010 溢出的位總是“自動(dòng)扔掉”,這么做這要自己保證不溢出,那么結(jié)果就是對(duì)的~(數(shù)學(xué)上的說法是,在那個(gè)有限域中的運(yùn)算都是封閉的,出了有限域就不保證結(jié)果的正確性了=,=似乎如此吧,我不精數(shù)學(xué)) 樓主感興趣的話,可以自己算算 -1-2 體會(huì)一下就明白了~ |
![]() ![]() |
金蟲 (初入文壇)

至尊木蟲 (著名寫手)
驃騎將軍

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 304求調(diào)劑 +5 | 司空. 2026-03-18 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 281求調(diào)劑(0805) +6 | 煙汐憶海 2026-03-16 | 15/750 |
|
|
[考研] 【同濟(jì)軟件】軟件(085405)考研求調(diào)劑 +3 | 2026eternal 2026-03-18 | 3/150 |
|
|
[考研] 307求調(diào)劑 +3 | 冷笙123 2026-03-17 | 3/150 |
|
|
[考研] 材料專碩326求調(diào)劑 +6 | 墨煜姒莘 2026-03-15 | 7/350 |
|
|
[考研] 本人考085602 化學(xué)工程 專碩 +16 | 不知道叫什么! 2026-03-15 | 18/900 |
|
|
[考研] 290求調(diào)劑 +3 | p asserby. 2026-03-15 | 4/200 |
|
|
[考研] 梁成偉老師課題組歡迎你的加入 +8 | 一鴨鴨喲 2026-03-14 | 10/500 |
|
|
[考研] 211本,11408一志愿中科院277分,曾在中科院自動(dòng)化所實(shí)習(xí) +6 | Losir 2026-03-12 | 7/350 |
|
|
[考研] 材料工程專碩274一志愿211求調(diào)劑 +6 | 薛云鵬 2026-03-15 | 6/300 |
|
|
[考研] 275求調(diào)劑 +4 | 太陽花天天開心 2026-03-16 | 4/200 |
|
|
[考研]
|
zhouzhen654 2026-03-16 | 3/150 |
|
|
[考研] 318求調(diào)劑 +3 | Yanyali 2026-03-15 | 3/150 |
|
|
[考研] 一志愿華中師范071000,325求調(diào)劑 +6 | RuitingC 2026-03-12 | 6/300 |
|
|
[考研] 0856求調(diào)劑 +3 | 劉夢(mèng)微 2026-03-15 | 3/150 |
|
|
[考研] 326求調(diào)劑 +3 | mlpqaz03 2026-03-15 | 3/150 |
|
|
[考研] 070305求調(diào)劑 +3 | mlpqaz03 2026-03-14 | 4/200 |
|
|
[考研] 080500,材料學(xué)碩302分求調(diào)劑學(xué)校 +4 | 初識(shí)可樂 2026-03-14 | 5/250 |
|
|
[考研] 招收0805(材料)調(diào)劑 +3 | 18595523086 2026-03-13 | 3/150 |
|
|
[考研] 289求調(diào)劑 +3 | 李政瑩 2026-03-12 | 3/150 |
|