二进制负数以它正值的补码形式表达
补码:反码+1等于补码
比如:System.out.println(Integer.toBinaryString(-5));
打印:1111 1111 1111 1111 1111 1111 1111 1011 不用想了肯定是32位
过程是这样的:
一个负数,比如-5,它的二进制在java里面是这样表示
1000 0000 0000 0000 0000 0000 0000 0101
它的正值是:
0000 0000 0000 0000 0000 0000 0000 0101
反码是:
1111 1111 1111 1111 1111 1111 1111 1010
再加上1是:
1111 1111 1111 1111 1111 1111 1111 1011
即得到打印的内容
java ~ 操作符,对每个二进制位的内容求反,即1变成0,0变成1
测试负数:
int a = -5;//101;
System.out.println(~a);
打印:4
过程是这样的,首先表示出来这个负数
1111 1111 1111 1111 1111 1111 1111 1011(上面已经提到为什么这样表示)
各位取反得到
0000 0000 0000 0000 0000 0000 0000 0100
转为10进制得到4
测试正数:
int a = 5;//101;
System.out.println(~a);
打印:-6
首先表示出来这个正数:
0000 0000 0000 0000 0000 0000 0000 0101
各位取反得到:
1111 1111 1111 1111 1111 1111 1111 1010
这个代表的就是-6了,至于为什么看最上面
java & 操作符,对应的二进制位进行与操作,两个都为1才为1,其他情况均为0
测试:
System.out.println(5&6);
打印:4
过程:
5表示成:0000 0000 0000 0000 0000 0000 0000 0101
6表示成:0000 0000 0000 0000 0000 0000 0000 0110
进行 & :0000 0000 0000 0000 0000 0000 0000 0100
得到:4
<!--EndFragment-->
分享到:
相关推荐
经常项目中用到的Java的位运算相关的方法,稍微整理了下 详细介绍可参考博客 http://longshaojian.iteye.com/admin/blogs/1946865 请多指教!
位操作,很强大。由于在工作中遇到一次,基本不会,为了学习,就整理了一下,集中学习了次。为以后的使用提供参照。
Java位运算操作 左位移 右位移 与或非的操作
官网下载的windows的64位操作系统下的java的jdk17安装包
java位运算符之|(OR)操作视频!!!
在Java中,按位操作符用于对整数进行位级别的操作 按位与(&)操作符 按位或(|)操作符 按位异或(^)操作符 按位取反(~)操作符 左移()操作符 右移(>>)操作符
java位运算符之左移操作视频!!!!
java位运算符&AND操作视频!!!!
java安装程序,适用于windows32位操作系统。为初学者提供便利。
发现javaRD800.dll 32位操作系统的 比较难找,现在正好手里有现成的,所有分享出来,希望可以帮到需要的同学。
java安装程序,适用于windows64位操作系统。为初学者提供便利。
解决java串口操作中发送数据中只要包含0x0A,操作系统自动在0x0A前添加0x0D的的问题例子程序。
这是一个Java jdk17 编译器,如果需要安装其他版本请到oracle甲骨文官网下载。
JAVA程序,适用于64位操作系统,有需要的可以下载看看。
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...
适用于java 开发者,该版本为windows系统java软件开发包 1.8 稳定版,双击进行安装,全程傻瓜式操作,自动设置环境变量,无须在系统设置进行java环境的配置,安装完成后在dos界面 输入 java -version即可发现已经...
Java JDK 1.8 64位是一款Java开发工具包,适用于64位操作系统。它包含了Java编译器、Java虚拟机、Java类库等开发所需的工具和组件,可以用于开发和运行Java应用程序。该工具包支持多种操作系统,包括Windows、Linux...
java 控制鼠标*键盘的 jna 库32位
java技术,对象操作:数值取整和保留两位小数,将数值转换成字符串。