整型在記憶體中的儲存(原碼 反碼 補碼)

2021-09-27 01:52:22 字數 763 閱讀 9785

我們談談資料在所開闢記憶體中到底是如何儲存的?

比如:

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...