作者:mobiledu2502924751 | 来源:互联网 | 2023-10-11 17:41
rtclassTest{publicstaticvoidmain(String[]args){System.out.println(6.34%4);System.ou
rt
class Test
{
public static void main(String[]args)
{
System.out.println(6.34%4);
System.out.println(6.34%4.2);
System.out.println(~2);
char c1='aaa';
System.out.println(c1);
}
}
9 个解决方案
2 => 0000 0010
~0010 => 1111 1101,符号为-
1111 1101-1 => 1111 1100
~1111 1100 => 0000 0011
0000 0011 => 3
2的表示是00000010
按位取反后是11111101
再转换成原码是10000011
结果就是-3了
这样理解:2=0000 0010
按位取反后:1111 1101------->此时表示为负数,因为最高位为1
然后转化为:1000 0010
然后再加1就变为:1000 0011---->此时表示的数为-3
------->二进制的负数转化为十进制的时候规则为:除符号位外取反,然后加1!
2 的原码 0000 0010
~2 按位取反 1111 1101
由于计算机内的数据是以补码的形式存储的
所以系统认为1111 1101是按补码存储的数据,将它还原成十进制的值
也就是负数的补码取反+1,得到
1000 0011 也就是 -3