c語言進製

2021-08-07 13:26:10 字數 1172 閱讀 8933

1.負數二進位制的表示方法

假設有乙個 int 型別的數值為5,那麼,我們知道它在計算機中表示為:

00000000 00000000 00000000 00000101

5轉換成二制是101,不過int型別的數占用4位元組(32位),所以前面填了一堆0。

原碼:正數的原碼按照絕對值大小轉換成的二進位制數;負數的原碼按照絕對值大小轉換成的二進位制數,然後最高位補1,稱為負數的原碼。

反碼:正數的反碼與原碼相同,負數的反碼為對該數的原碼除符號位外各位取反。

補碼:正數的補碼與原碼相同,負數的補碼為對該數的原碼除符號位外各位取反,然後在最後一位加1.

比如-1的原碼:10000000 00000000 00000000 00000001

反碼: 11111111 11111111 11111111 11111110(除符號位按位取反)

補碼: 11111111 11111111 11111111 11111111

可見,-1在計算機裡用二進位制表達就是全1。16進製為:0xffffff

正零和負零的補碼相同,[+0]補=[-0]補=0000 0000b

2.c語言中怎麼把乙個十進位制的負數以二進位制的形式輸出

#include

void prt_byte( int n )

void main()

prt_byte(n);

printf("\n");

}

3.小數的二進位制演算法

小數的二進位制演算法就是 取小數字然後乘2取整

#include 

#include

char*geterjinzhi(floatnumber,charchars[40]);

intmain()

char*geterjinzhi(floatnumber,charchars[40])

dowhile((number2- (int)number2)&&index

<7);

chars2[index]='\0';

printf("%s\n",chars2);

strcat(chars,".");

printf("%s",strcat(chars,chars2));

returnchars;

}

C語言進製

一 原碼 反碼 補碼 計算機儲存的數為補碼 數分為有符號 正 負 和無符號 全是正 原碼正數 數轉換為2進製,最高位如果是0,則是整數 負數 數轉換為2進製,最高位如果是1,則是負數 反碼正數 整數的反碼還是它的原碼 負數 除符號位不變,其它各位,逐位取反 補碼正數 整數的補碼還是它的原碼 負數 反...

c 語言 進製轉換

題目描述 將十進位制整數n轉換成二進位制,並儲存在字元陣列中,最後輸出。要求定義並呼叫convert 函式,將十進位制整數n對應的二進位制數存入字元陣列str中。void convert int n,char str 輸入輸入乙個非負整數n,n 2 31。輸出輸出乙個01字串,即n對應的二進位制數,...

c 語言 進製轉換

題目描述 將十進位制整數n轉換成二進位制,並儲存在字元陣列中,最後輸出。要求定義並呼叫convert 函式,將十進位制整數n對應的二進位制數存入字元陣列str中。void convert int n,char str 輸入輸入乙個非負整數n,n 2 31。輸出輸出乙個01字串,即n對應的二進位制數,...