用C语言编一个程序,使给出一个数的原码,求得反码,补码.
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/06/16 22:24:21
用C语言编一个程序,使给出一个数的原码,求得反码,补码.
#include
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
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
什么是一个数的原码,反码,补码?
求一个十进制数的 (原码 补码 反码 移码 ) 用一个字节表示?
对于真值 0 表示形式唯一的机器数是( ) A、原码和补码 B、原码和反码 C、移码和补码 D、反码和补码
一个简单的C语言题分别用以下指定的形式来表示十进制数41,写出其编码.(1)原码(2)反码(3)补码(4)BCD码题目一
假定一个数在机器中占八位,分别计算 +_109的原码反码和补码
一个负小数要写出其原码、反码、补码,在写反码时,指数也要除符号位外全变为相反的数吗?
已知数的原码,写出数的补码和反码.
写出二进制数 -101001的原码、反码和补码.
十进制数-13的原码、反码和补码是什么?
十进制数的反码 、原码、补码都怎么算
101011的原码补码反码无符号数移码
写出十进制数 -110的原码、反码和补码