當前位置:首頁 » 編程語言 » 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

熱點內容
金立怎麼加密圖片 發布:2024-11-28 03:31:43 瀏覽:663
2017玩dnf電腦什麼配置 發布:2024-11-28 03:30:56 瀏覽:519
ftp掛載存儲ip配置 發布:2024-11-28 03:28:51 瀏覽:962
山耐斯空壓機密碼多少 發布:2024-11-28 03:26:28 瀏覽:404
安卓拍照搖一搖是什麼軟體 發布:2024-11-28 03:26:27 瀏覽:256
小米2s存儲卡 發布:2024-11-28 03:15:49 瀏覽:648
彈性演算法 發布:2024-11-28 02:58:40 瀏覽:85
python寫入mysql資料庫 發布:2024-11-28 02:52:56 瀏覽:431
網站伺服器太忙怎麼進 發布:2024-11-28 02:47:39 瀏覽:719
linux的系統函數 發布:2024-11-28 02:39:52 瀏覽:295