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

热点内容
java汉诺塔递归算法 发布:2025-04-02 06:28:40 浏览:126
可执行文件是编译链接后生成的文 发布:2025-04-02 04:36:44 浏览:174
电脑文件加密软件免费 发布:2025-04-02 03:02:51 浏览:806
php图片管理 发布:2025-04-02 03:01:11 浏览:266
然后弄编程 发布:2025-04-02 02:54:06 浏览:113
解压室俱乐部 发布:2025-04-02 02:47:04 浏览:282
安卓哪里下载文豪野犬 发布:2025-04-02 02:45:04 浏览:790
优酷安卓怎么免广告 发布:2025-04-02 02:30:07 浏览:834
安卓系统怎么把繁体字改为简体字 发布:2025-04-02 02:14:39 浏览:326
androidpos机 发布:2025-04-02 01:40:54 浏览:374