当前位置:首页 » 编程语言 » 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

热点内容
我的手机如何恢复安卓系统 发布:2025-01-20 00:55:48 浏览:366
eclipsejsp编译 发布:2025-01-20 00:51:02 浏览:860
虚拟机连宿主机ftp 发布:2025-01-20 00:43:04 浏览:356
最小生成树的prim算法 发布:2025-01-20 00:39:40 浏览:325
淘宝助理无法上传 发布:2025-01-20 00:34:33 浏览:883
如何做一个代理服务器 发布:2025-01-20 00:18:39 浏览:803
android背单词源码 发布:2025-01-19 23:57:21 浏览:727
领动配置怎么样 发布:2025-01-19 23:56:35 浏览:83
python造数据 发布:2025-01-19 23:51:31 浏览:903
linux下卸载mysql 发布:2025-01-19 23:40:34 浏览:339