當前位置:首頁 » 編程語言 » c語言補碼函數

c語言補碼函數

發布時間: 2024-04-28 17:01:35

⑴ 用c語言編一個程序,使給出一個數的原碼,求得反碼,補碼。

#include<stdio.h>

int main(){
int i,j,k;
int a[16], af[16], ab[16];//af存儲反碼,ab存儲補碼第0位為符號位
char b[16];
scanf("%s", b);
for(i = 0; b[i] != '\0'; i++){
a[i] = b[i] - '0';
}
j = i-1;
ab[0] = af[0] = a[0];//符號位始終不變

if(a[0] == 1){//當從屏幕輸入的是負數,則作相應變換
for(i = j; i > 0; i--){
af[i] = 1 - a[i];
ab[i] = a[i];
if(a[i] == 1){
i--;
break;
}
}
k = i;
for(; i > 0; i--)
af[i] = 1 - a[i];
for(i = k; i > 0; i--)//補碼從末位數起第一個不為0,以後均取反
ab[i] = 1 - a[i];
}
else{//如果是正數,則全部復制
for(i = j; i > 0; i--){//正數反碼、補碼都與原碼相同
af[i] = a[i];
ab[i] = a[i];
}
}
printf("對應的反碼是:\n");
for(i = 0; i <= j; i++)
printf("%d", af[i]);
printf("\n");
printf("對應的補碼是:\n");
for(i = 0; i <= j; i++)
printf("%d", ab[i]);
}

在vc下編譯測試通過。另,本代碼未考慮輸入非法問題,所輸入的數字智能由1和0組成

⑵ c語言程序:設計一個函數,使給出一個數的原碼,能得到該數的補碼。

#include <閉皮stdio.h>
unsigned short getbits(unsigned short);
void main()
{
unsigned short a;
unsigned short gebits(unsigned short);
printf("input a number:\茄者n");
scanf("顫態薯%o",&a);
printf("result:%o\n",getbits(a));
}

unsigned short getbits(unsigned short value)
{unsigned short z;
z=value&0100000;
if(z==0100000)
z=~value+1;
else
z=value;
return(z);}

⑶ C語言,輸出補碼

7的二進制0000
0000
0000
0111,~是按位反,結果是 1111
1111
1111
1000
注意最高位是1,說明這是個負數,負數在計算機中是補碼,補碼是十進制多少呢,把補碼負號不變,其它取反,最後加1,這個就是原碼.即1000
0000
0000
0111+1
=1000
0000
0000
1000是-8 公式~n
結果是
-(n+1)

⑷ c補碼的代碼寫法

c語言補碼的表示方法是:正數的補碼就是其本身,負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取反,最後+1 (即在反碼的基礎上+1)。
[+1] = [00000001](原碼) = [00000001](反碼) = [00000001](補碼) [-1] = [10000001](原碼) = [11111110](反碼) = [11111111](補碼) 對於負數,補碼表示方式也是人腦無法直觀看出其數值的。通常也需要轉換成原碼在計算其數值。 一、原碼 求原碼:X≥0,則符號位為0,其餘照抄; X≤0,則符號位為1,其餘照抄。 【例1】X=+1001001 [X]原 = 01001001 【例2】X=-1001001 [X]原 = 11001001 二、反碼 求反碼:若X≥0,符號位為0,其餘照抄; 若X≤0,符號位為1,其餘按位取反。 【例3】X=+1001001 [X]反 = 01001001 【例4】X=-1001001 [X]反 = 10110110 三、補碼 求補碼:若X≥0,符號位為0,其餘照抄; 若X≤0,符號位為1,其餘取反後,最低位加1。 【例5】X=+1001001 [X]補 = 01001001 【例6】X=-1001001 [X]補 = 10110111

熱點內容
r9s怎麼關閉應用加密 發布:2024-05-13 19:02:57 瀏覽:534
末並的演算法 發布:2024-05-13 18:38:03 瀏覽:406
java入門視頻教學 發布:2024-05-13 18:37:48 瀏覽:449
技術員加密鎖 發布:2024-05-13 18:09:03 瀏覽:197
安卓系統如何調成維修模式 發布:2024-05-13 17:14:31 瀏覽:232
恆易貸服務密碼多少 發布:2024-05-13 17:14:29 瀏覽:38
圖書館資料庫下載 發布:2024-05-13 17:00:54 瀏覽:897
芒果tv無法緩存 發布:2024-05-13 17:00:41 瀏覽:676
wifi密碼輸錯怎麼重新輸入 發布:2024-05-13 16:58:37 瀏覽:493
有什麼網頁存儲網盤 發布:2024-05-13 16:34:30 瀏覽:995