A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class Demo1_Operator {
  2.         public static void main(String[] args) {
  3.                 /*
  4.                 * &,|,^,~ 的用法
  5.                 * &:有0则0
  6.                 * |:有1则1
  7.                 * ^:相同则0,不同则1
  8.                 * ~:按位取反
  9.                 */

  10.                 System.out.println(6 & 3);                                //2
  11.                 System.out.println(6 | 3);                                //7
  12.                 System.out.println(6 ^ 3);                                //5       
  13.                 System.out.println(~6);                                        //-7?                                       
  14.         }
  15. }
  16. /*
  17.         110
  18. &        011
  19. -----------
  20.     010

  21.         110
  22. |        011
  23. -----------
  24.     111

  25.         110
  26. ^        011
  27. -----------
  28.     101

  29.         00000000 00000000 00000000 00000110                6的原码反码补码都是本身
  30.         11111111 11111111 11111111 11111001                对6取反
  31. -        00000000 00000000 00000000 00000001
  32. ---------------------------------------
  33.         11111111 11111111 11111111 11111000                反码
  34.         10000000 00000000 00000000 00000111                原码(-7)
  35. */
复制代码


问题:
其中System.out.println(~6); 语句输出的结果是 -7,但是分析的时候,最高位符号位为 1,整数情况下最高位都是按符号位来计算的吗?
哎呀,感觉这个问题问的好别扭啊,,,

2 个回复

倒序浏览
最高位就是符号位
回复 使用道具 举报
yaozhilin 发表于 2016-7-5 22:13
最高位就是符号位

哦哦,谢谢,{:3_57:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马