int a
printf("input a number:")
scanf("%d",&a)
if(a>0)printf("%d is 正数.",a)
else if(a==0)printf("%d is 0.",a)
else if(a<0)printf("%d is 负数.",a)
你好,首先要测试一下你编译器所定义的整型是多少字节,用sizeof(int)测试一下,一般是4字节,假如是4字节说明是32位,这样无符号和有符号整数区别在于第32位是1还是0,所以可以用一个数0x80000000=10000000
0000
0000
0000
0000
0000
0000(32),与整数做“与&”运算,假如最高位结果是1(即0x80000000),说明原来整数是负数,假如位0则是正数。
所以可以用如下代码实现
int
yu(int
num)
{
return
(num
&
0x80000000)
}
之后在调用函数测试return值就可以了
#include<stdio.h>int main()
{
int i
printf("请输入数字\n")
scanf("%d",&i)
if(i>=0)
{
printf("这个数字为非负数")
}
else
printf("这个数字为负数")
}