当前位置:首页 » 编程语言 » 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-05-06 00:13:38 浏览:953
服务器怎么盈利 发布:2024-05-05 23:56:16 浏览:941
java网站培训学校 发布:2024-05-05 23:43:11 浏览:40
淘宝搜索算法 发布:2024-05-05 23:37:07 浏览:998
sqlwhencasethen 发布:2024-05-05 23:27:51 浏览:641
模架编程软件 发布:2024-05-05 23:26:54 浏览:483
存储过程异常 发布:2024-05-05 23:24:03 浏览:399
winxp访问不了win7 发布:2024-05-05 23:05:23 浏览:734
算法牛 发布:2024-05-05 22:43:40 浏览:720
grublinux引导 发布:2024-05-05 22:37:56 浏览:216