1楼:匿名用户
~号是取反符
10的二进制表示为 00001010(int为32位,多余的0省,假设为8位)
b的值为对10的二进制取反,即 11110101 (最高位为1,所以为负数,负数用补码表示,该值刚好是-11的补码)
所以b的值为-11
2楼:匿名用户
因为int型为有符号的两个字节,即a=10化成二进制为0000,0000,0000,1010;再取反,即为1111,1111,1111,0101这就是b!此时将b化成10进制为-32757。但在输出时系统自动化为-32768+32757=-11保存
3楼:听不清啊
这是正确的去处啊。补码就是这样表达的。
java语言中int a=10;double b=a/4;b的值为什么是2.0 ,从结果上看double a=10;int b=a/4;b的值也是2.0,
4楼:匿名用户
int a=10;double b=a/4中a/4实际就是取整,你然后把这个数又转化成小数,所以输出的是2.0
double a=10;int b=a/4;a/4算出来应该是2.5,但是你强制转化成整型,就成了2.0
5楼:匿名用户
a/4参加运算的两个数都是整型的,所以按照整型的进行计算得到的数会取整,然后再赋值给double型的b,这时小数已经丢失了。
int b=a/4;虽然计算是double型的,但由于赋值给整型的b所以取整后再赋的值。
double b=(double)a/4;或者b=a/4.0;即可得到浮点结果。
java中int a=10 然后int b=a++,怎么a的值也改变了??????
6楼:主宰比赛
int b = a++;他的详细过程是
先将a现有的值赋值给b,然后对a进行自加操作a+=1;
完整的列出来给你看下
int b = a++;
相当于下面两步
int b =a;
a+=1;
顺便提一下++a;++a的计算过程是,先计算a+=1,然后将a的值赋值给b
相当于:
a+=1;
int b=a;
次序正好与上面相反,但是无论哪个,最后a的值都是变化的。
如果你想要a不变化,就这样写,先给b赋值
int b=a;
这个时候b已经得到了和a一样的值,然后对b进行操作b++;
这样a就不变啦~
int a=10, b;b=(a++)+a(++);输出a, b的结果?为什么?
7楼:匿名用户
b=(a++)+a(++);
应该是b=(a++)+(a++);把?
a ==12 b==20 ,
b=(a++)+(a++) 等价于 b=a+a; a++;a++;
懂了吧? a++是先运算后++ 如果 改成 b=(++a)+(++a); 结果 b==24,a==12
8楼:匿名用户
a++=11,(a++)=12, a=12 b=20
int a=10; int b= a++; system.out.print(a);. system.out.print(b); a为什么是11,b10是
9楼:匿名用户
a++的顺序是,先使用值,再计算,
所以**可以解析为:
int a=10;
int b=a;
a=a+1;
所以a值为11,b为10,
如果用b=++a;
则a,b都是11
10楼:匿名用户
a之所为11是因为在赋值给b以后做了一次累加
b之所为10是因为在a=10的时候赋值给了b
11楼:沧海雄风
b=a++ 先把a值赋值给b 然后a自加 因此 b=10 a =11
如果是 b= ++a的话 那么是先执行自加 然后赋值给b a,b两个都是11
这个东西 考试必考 都考烂了
unsigned int a=6; int b=-20; char c; c=(a+b>6); printf("%d",c); 为什么c的值为1?
12楼:红楼陨梦
b是负数,在内存中以补码的形式存储,大小为4个字节,其二进制形式为:
11111111 11111111 11111111 11101100
a 为unsigned int型,b为int型。
运算(a+b>6)时,先a+b,根据运算规则,b将被看成是unsigned int 型,
即11111111 11111111 11111111 11101100所带表的unsigned int 型数据,化为十进制为
4294967276
则 a+b = 6 + 4294967276 = 4294967282 〉6,表达式为真,故c = 1。
13楼:金色潜鸟
a+b , b 变 unsigned int 后再运算,-20会变很大的正数,a+b 大于6 ,得真(即1)。c的值为1。
14楼:梦翔茄子
自动转换问题,当有符号整型数遇到无符号整型时会自动转换为无符号数,表达式中b变为正值,a+b肯定大于6。
15楼:匿名用户
a+b>6为真,所以是1,十进制的1在char型里显示出来就是1
c语言int a=10; int b=20; int value=(a=40)&&(a==40); 为什么输出value值是1呢?
16楼:深谷幽兰
(a=40)&&(a==40)中,a=40是给a赋值为40,所以左边的结果为1。由于左边赋值后a的值为40,所以右边a==40的结果为1。1&&1结果为1,所以最后value的结果为1。
17楼:匿名用户
#include"stdio.h" void main()
int a=10, b;b=(a++)+a(++);输出a, b的结果?为什么?
18楼:
b=(a++)+a(++);
改为:b=(a++)+(a++);
不同的编译系统结果不同,在vc++下,结果为a=12
b=20
19楼:匿名用户
你的语句有错:b=(a++)+a(++);应该是b=(a++)+(a++);
输出结果a=12,因为a再次自增;
b=20,因为a++的++是后缀运算,所以对于当前语句中的b=(a++)+(a++)执行时,a都作为10计算
20楼:悟晓曼闻盼
b=(a++)+a(++);
应该是b=(a++)+(a++);把?
a==12
b==20
,b=(a++)+(a++)
等价于b=a+a;
a++;a++;
懂了吧?
a++是先运算后++
如果改成
b=(++a)+(++a);
结果b==24,a==12
求解。变量a,b,c的值分别是?int x 10,y
1楼 草柏渡 首先你这程序有错误的判断 x y 就好。 在前面 或就 就是先 或 再用数 在后面就先就是先用数在 或 所以 x y 是对的。所以a x 所以a 8的 经过两个 。 b x 先赋给b再 。所以b 8 x为9 c等于y。y等于10 y 是没有执行到的。 5 执行以下程序段后 变量a b ...
若有以下程序段,则变量C的二进制值是int a 3,b
1楼 取綽號好難 a 3 b 6 c a b 2 00000011 00000110 2 00000011 00011000 00011011 a 00011011 2楼 匿名用户 a 00000011 b 00000110 t b 2 00011000a t 00011011 所以选a 以下程序段...
清代的翡翠有b货吗,奇怪,为什么清代的翡翠拿去检测,测出来的会是B货呢?。求专家指教。
1楼 匿名用户 技术上讲可以做,用碱长腐蚀,然后用蜡煮,和田玉的染色和做沁,明朝的时候就开始,如果按照和田玉造假的方法,处理翡翠,技术上讲没问题的。 实际上,清代的后期,自从慈禧喜欢翡翠后,翡翠在国内才开始大规模的流行,而且大都在贵族和富人阶层流行,应该讲作假的不会很多。 2楼 筝臣 清代的有炝色翡...