Java按位非运算问题主要还是“~”这个玩意儿有点郁闷...这个东西究竟是干嘛用的.不是求补码的么?我现在有点凌乱,原码的补码不应该是本身么?为什么我在Java里定义一个整形的 i 然后给 i 赋
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/04 03:14:10
Java按位非运算问题主要还是“~”这个玩意儿有点郁闷...这个东西究竟是干嘛用的.不是求补码的么?我现在有点凌乱,原码的补码不应该是本身么?为什么我在Java里定义一个整形的 i 然后给 i 赋
Java按位非运算问题
主要还是“~”这个玩意儿有点郁闷...这个东西究竟是干嘛用的.不是求补码的么?
我现在有点凌乱,原码的补码不应该是本身么?
为什么我在Java里定义一个整形的 i 然后给 i 赋值 “1”
然后 i 得到的结果是 “-2”
.不应该是1么.为啥会是 “-2”
Java按位非运算问题主要还是“~”这个玩意儿有点郁闷...这个东西究竟是干嘛用的.不是求补码的么?我现在有点凌乱,原码的补码不应该是本身么?为什么我在Java里定义一个整形的 i 然后给 i 赋
这个不是求补码的.
前几天写过一个,你看看吧
class Test
{
public
static void main(String[] args)
{
/*
正数取~:-(a+1)
负数取~:(a+1)
*/
/*
是对存于计算机的补码进行操作的.
6是正数,补码与其源码相同.为:0(符号位)...0000110(因为默认是int型所以32位)
对其~操作后为:1(符号位)...1111001
显霸气编程源码:取反加1(除去符号位)
1) 1(符号位)...0000110
2) 1(符号位)...0000111
所以最后是-7
*/
System.out.println(~6);//-7
/*
是对存于计算机的补码进行操作的.
-6是负数.1(符号位)...0000110
显霸气编程源码:取反加1(除去符号位)
1) 1(符号位)...1111001
2) 1(符号位)...1111010
对其~操作后为:0(符号位)...0000101
正数的补码与源码相同故为:0(符号位)...0000101
所以最后是5
*/
System.out.println(~-6);//5
}
}