该程序设计目的为给出一个数的原码,能得到该数的补码。一个正数的补码等于该数原码,一个负数的补码等于该数中的反码加1。
代码是:
#include "stdio.h"
void main()
{
unsigned int a;
unsigned int z;
printf("Please input a octal number:");
scanf("%o",&a);
z=a&0100000;
if(z==0100000)
z=~a+1;
else
z=a;
printf("Its complement is:%o\n",z);
getch();
}
1。将该程序的算法用自然语言描述。
2 根据测试结果你对该程序有什么建议或提议?
代码是:
#include "stdio.h"
void main()
{
unsigned int a;
unsigned int z;
printf("Please input a octal number:");
scanf("%o",&a);
z=a&0100000;
if(z==0100000)
z=~a+1;
else
z=a;
printf("Its complement is:%o\n",z);
getch();
}
1。将该程序的算法用自然语言描述。
2 根据测试结果你对该程序有什么建议或提议?
设置z等于a和0100000按位与的结果 //保留最高位正负数标识位
如果z等于0100000 //说明a为负数
设置z等于a的按位取反的结果加一
否则 //a为正数
设置z等于a
按八进制打印结果z到屏幕
#include "stdio.h"
void main()
{
unsigned int a;
unsigned int z;
printf("Please input a octal number:");
scanf("%o",&a);
z=a&0x80 /*z=a&0100000;*/
if(z==0x80) /*if(z==0100000)*/
z=~(a|0x80)+1;
else
z=a;
printf("Its complement is:%o\n",z);
getch();
}
好久没写c程序了,不知道有没有错误,欢迎监督啊