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對應的二進位制數,...