扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
你好,首先要测试一下你编译器所定义的整型是多少字节,用sizeof(int)测试一下,一般是4字节,假如是4字节说明是32位,这样无符号和有符号整数区别在于第32位是1还是0,所以可以用一个数0x80000000=1000
创新互联建站成立与2013年,先为江永等服务建站,江永等地企业,进行企业商务咨询服务。为江永企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
0000
0000
0000
0000
0000
0000
0000(32),与整数做“与”运算,假如最高位结果是1(即0x80000000),说明原来整数是负数,假如位0则是正数。
所以可以用如下代码实现
int
yu(int
num)
{
return
(num
0x80000000)
;
}
之后在调用函数测试return值就可以了
#include stdio.h
int main()
{
double a;
scanf("%lf",a);
if(a0) printf("正数\n");
else if(a0) printf("负数\n");
return 0;
}
主函数中这么写:
int a;
printf("input a number:");
scanf("%d",a);
if(a0)printf("%d is 正数.",a);
else if(a==0)printf("%d is 0.",a);
else if(a0)printf("%d is 负数.",a);
#includestdio.h
int main()
{
int i;
printf("请输入数字\n");
scanf("%d",i);
if(i=0)
{
printf("这个数字为非负数");
}
else
printf("这个数字为负数");
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流