当前位置: 技术问答>linux和unix
位运算问题
来源: 互联网 发布时间:2016-05-14
本文导语: 有一32位的整型数据,要求编写一子函数, 统计出奇数位(0,2,4,6,……)中1和0的个数, 同时打印出奇数位中这个16位数的数值大小。 请高手指教,谢谢 | 让一让,让一让,大师登场...
有一32位的整型数据,要求编写一子函数,
统计出奇数位(0,2,4,6,……)中1和0的个数,
同时打印出奇数位中这个16位数的数值大小。
请高手指教,谢谢
统计出奇数位(0,2,4,6,……)中1和0的个数,
同时打印出奇数位中这个16位数的数值大小。
请高手指教,谢谢
|
让一让,让一让,大师登场:::::::::::::::::
-bash-2.05b$ cat ./yiwei.c
#include
int main(){
int a = 0;
int b = 0;
int count_0 = 0,
count_1 = 0;
printf("Please input a integer:n"); //获得输入的整数
scanf( "%d", &a );
while ( a > 0 ){ //右移到最后就是0了,以此为限制条件
if ( !(a % 2) ) count_0 ++ ; //a%2==0的话,表示二进制末位是0
else count_1 ++ ; //反之则是1
a = a >> 2; //一次右移两位,根据题意,奇数位嘛
}
printf("There are %d (0),and %d (1)!n",count_0,count_1);
return 0;
}
-bash-2.05b$ cat ./yiwei.c
#include
int main(){
int a = 0;
int b = 0;
int count_0 = 0,
count_1 = 0;
printf("Please input a integer:n"); //获得输入的整数
scanf( "%d", &a );
while ( a > 0 ){ //右移到最后就是0了,以此为限制条件
if ( !(a % 2) ) count_0 ++ ; //a%2==0的话,表示二进制末位是0
else count_1 ++ ; //反之则是1
a = a >> 2; //一次右移两位,根据题意,奇数位嘛
}
printf("There are %d (0),and %d (1)!n",count_0,count_1);
return 0;
}
|
菜鸟答复,请高手指教
INT32 a=78,b=a;
int num=0,temp=0,calc=0;
num=a%2;
if(num==1)
calc++;
for(int i=1;i
INT32 a=78,b=a;
int num=0,temp=0,calc=0;
num=a%2;
if(num==1)
calc++;
for(int i=1;i