整型數字在計算機中的表示

2021-07-05 17:23:20 字數 847 閱讀 8305

記得遠古時代,上第一門計算機課時,書上說:整型數字在計算機中的以補碼形式儲存。今天有人問我這是啥意思。我乾脆就寫了個程式來說明這點,程式的功能是讓使用者輸入乙個整型數字,然後將這個數字所佔據的記憶體按照位和位元組分別輸出。不但可以看出的確是用補碼形式儲存,還能看出是little-endian還是big-endian。

#include

#include

using namespace std;

unsigned char masks = ;

void print_8bits(unsigned char c)

} int main()

int i = atoi(str.c_str()); 

int i_0 = *((unsigned char*)(&i));

int i_1 = *((unsigned char*)(&i) + 1);

int i_2 = *((unsigned char*)(&i) + 2);

int i_3 = *((unsigned char*)(&i) + 3);

print_8bits(i_0);

cout << " ";

print_8bits(i_1);

cout << " ";

print_8bits(i_2);

cout << " ";

print_8bits(i_3);

cout << endl;

cout << hex;

cout << i_0 << " " << i_1 << " " << i_2 << " " << i_3 << endl;

cout << dec;}} 

return 0; }

負數在計算機中的表示

今天,老大讓我調查乙個浮點數轉換為整數的問題。自己就查了些資料,順便複習一下原碼 反碼和補碼。原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組...

負數在計算機中的表示

原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的原碼為1111 1010。補碼 正數的補碼就是其原碼 負...

小數在計算機中的表示

執行如下 得到結果 你猜是多少呢?嗯你沒有看錯得到的答案是57.所以為什麼會出現這種情況呢?首先需要 的是0.58這個數字是如何在計算機中儲存的。我們一般用下面格式表示浮點數。sp m 其中s是符號位,p是階碼,m是尾數。單精度浮點數是32位,雙精度浮點數是64位。s pm表示公式 偏移量1823 ...