我們談談資料在所開闢記憶體中到底是如何儲存的?比如:
int a = 20;
int b = -10;
我們知道 a 分配四個位元組的空間。那如何儲存?
下面讓我們看三個概念:
符號位都是用0表示「正」,用1表示「負」。
原碼:直接將二進位制按照正負數的形式翻譯成二進位制就可以。
反碼:將原碼符號位不變,其他位按位取反就可以得到了。
補碼:反碼+1就得到補碼。
正數的原、反、補碼都相同。(引進補碼的作用是為了讓計算機更方便做減法)
對於整型來說:資料存放記憶體中其實存放的是補碼。
為什麼呢?
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理; 同時,加法和減法也可以統一處理(cpu只有加法器)此外,補碼與原碼相互轉換,其運算過程是相同的, 不需要額外的硬體電路。讓我們看看他在記憶體中的儲存:
我們可以看到對於a和b分別儲存的是補碼。但是順序有點不對勁。這是為什麼?
整型資料在記憶體中如何儲存
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!以下討論,針對32位的計算機系統。問 int型資料佔幾個位元組?答 4位元組。地球上這個群體的人都知道。再問 這4個位元組,即32個二進位制位,又是何儲存?這就進入計算機的 底層 了。這個事情,學習程式設計的童鞋,可以懂。儲存的方式,和我們拍腦袋想...
原碼 反碼 補碼的總結
原碼 反碼 補碼 數值在計算機中表示形式為機器數 計算機只能識別0和 1,使用的是二進位制 而在日常生活中人們使用的是十進位制 正如亞里斯多德早就指出的那樣 今天十進位制的廣泛採用 只不過我們絕大多數人生來具有 10個手指頭這個解剖學事實的結果 儘管在歷史上手指計數 5,10進製 的實踐要比二或三進...
補碼 原碼 反碼的轉換
很多初學者覺得補碼 原碼 反碼之間的轉換很複雜,經常會搞混,其實只要記住下面的幾個要點,我們就會發現這其實是很簡單的。由於正整數的原碼 補碼 反碼都一樣,第一位為符號位,為0,餘下七位為二進位制形式。下面主要講解負整數三碼的轉換 1.原碼轉為反碼 符號位不變,數值位分別按位取反。eg.x 11010...