若x=10010111,则表达式(3+(int)(x))&(~3)的值是? 最好能把程序给我看看,再讲解下,谢谢
把这个程序贴出来,希望你看得懂:
#include<stdio.h>
#include<stdlib.h>
/*把数a从b进制转换成c进制*/
int transfer(int a,int b,int c)
{
char s[100];
int rv, n=0, base=1;
while(a)//a从b进制的转化为10进制的
{
n+=(a%10)*base;
base*=b;
a/=10;
}
itoa(n, s, c);//函数调用n转化为C进制的,存在数组S中
sscanf(s, "%d ", &rv);
printf("将数a从%d进制转换成%d进制后是%d\n",b,c,rv);
return rv;
}
int main()
{
int x;
//将x的值转换成10进制
x = transfer(10010111,2,10);
//重新求x的值
x = (3 + (int)x & (~3));
//将X的值转换成2进制
x = transfer(x,10,2);
return 0;
}
能不能加下QQ啊?我想请教你一下详细问题?主要是9月要考试了。。。
追答可以啊,你QQ多少?
追问282493099
3 + (int)(x) = 0x9a, 而~3为0xfffc, 与运算后最终答案为0x98.追问
x=10010111 我还是没明白。。。书上答案是:10011000
追答二进制的10011000就是十六进制的0x98