#include<stdio.h>
int isPositive(int x){
/*如果!x成立,说明x等于0,返回0*/
if(!x){
return 0;
}
/*对应int型整数,最高位为符号位(第31位)。符号位对于正数为0,负数为1*/
x=x>>31;
/*根据算术右移规则:1、如果是正数,右移31位结果得0。2、如果是负数,右移后前导补1,得32个1,即非零*/
if(!x){/*!x成立,说明右移后x等于0,满足第一种情况,返回1;下面的同理*/
return 1;
}
return 0;
}
int main(){
int x;
scanf("%d",&x);
printf("%d\n",isPositive(x));
return 0;
}
定义一个函数,在不使用任何关系运算符的情况下,对参数x的符号进行判断,如果大于0则返回1,否则返回0
于 2022-02-22 22:38:39 首次发布
507





