當前位置:首頁 » 編程語言 » c語言的補碼程序

c語言的補碼程序

發布時間: 2023-05-29 17:04:07

『壹』 c語言求二進制補碼 源代碼

輸入任意整數,輸出碼胡32位的螞模廳補碼。
輸入其他,結束程序。

#include<stdio.h>
int main()
{
int i,num=0;
char s[33]={0};
while(1==scanf("%d",&num)){
for(i=0;i<32;i++){
s[i]= (0x01 & (num>>悶隱(31-i))) ? '1' : '0' ;
}
printf("%s\n",s);
}
return 0;
}

『貳』 c語言 補碼程序

這是求第i位的補碼是0還是1的意思
x & 1就是求x和1相與,<<皮和(15-i)就燃飢盯是左移動15-i位,這么說應該明白了吧肢族

『叄』 用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語言編寫一個實現求任意整數X的補碼

正整數的補碼就是它本身
負整數的補碼就是它在內存中的存儲值
#include
void
main()
{
int
n;
scanf("%d",
&n);
printf("n的補碼:%x\n",
n);/*
16進制和2進制等價
*/
}
如果你的任意整數要求1000位數或者更大,那就要用數組來存儲,並按照補碼規則來計算:負數的補碼就是對反碼加一,而正數不變。

『伍』 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語言程序:設計一個函數,使給出一個數的原碼,能得到該數的補碼。

#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語言程序題,任意輸入一個整數,編一個程序,使其輸出輸出相應的原碼、反碼及補碼。

程序如下:

#include<stdio.h>

void main()

{

int a,b;

char oper;

scanf("%d%c%d",&a,&並稿者oper,&b);

switch(oper)

{

case '+':

printf("%d+%d=%d ",a,b,a+b);

break;

case '-':

printf("%d-%d=%d ",a,b,a-b);

break;

case '*':

printf("%d*%d=%d ",a,b,a*b);

break;

case '/'絕薯:

printf("敬悄%d/%d=%f ",a,b,(1.0*a)/b);

break;

case '%':

printf("%d%%%d=%d ",a,b,a%b);

break;

default:

break;

}

}

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91