二进制的11111100如何换算为十进制数,运算过程是怎样的?

不好意思,此前问的那个打错了。
我在做一个SCJP的题。如下
After execution of the following code, what is the value of a?
byte a;
byte b = 3; // binary 00000011
byte c = -3;
if (~b > c)
{
a = c;
}
else
{
a = b;
}
但答案说是3
其解析为:
B is correct. "~" is the bitwise inverter. Hence the binary representation of ~b is "11111100" which is -4, thus the "else" condition gets executed and a gets the value of b which is 3.
就是不知道怎么会是负数了。

  二进制的11111100如何换算为十进制数是252。
  具体过程的基本规律是从右往左依次乘以2的位数幂,即为:
  0*2^0+0*2^1+1*2^2+1*2^3+1*2^4+1*2^5+1*2^6+1*2^7+1*2^8
  =0+0+4+8+16+32+64+128
  =252
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-15
二进制负数存的是补码,第一位是符号位为1
表示是负数,算法是负数去掉符号的正数的二进制形式按位取反再加1得到的补码形式。
4
是00000100
取反11111011
加一11111100
第2个回答  2006-07-06
0位就是2的0次幂
1位就是2的1次幂
依次类推
有就加没有就不加
2的8次幂+2的7次幂+2的6次幂+2的5次幂+2的4次幂+2的3次幂+2的2次幂
就是111111100的十进制数了
第3个回答  2023-08-19
把二进制数11111100改写成十进制数,只要把它写成2的各次幂之和的形式,然后按通常的方法进行计算即可。
∴11111100(2)=0×2^0+0×2^1+1×2^2+1×2^3+1×2^4+1×2^5+1×2^6+1×2^7
=0+0+4+8+16+32+64+128
=252
第4个回答  2006-07-06
用电脑中的计算器(附件中),查看中有标准型和科学型,选科学型,再选二进制,输入11111100,再选十进制