Java按位运算符之按位取反

一 数据储存形式

二进制在内存中以补码的形式存在。

补码首位是符号位,0表示该数是正数,1表示该数是负数。

例如:

数值
带符号的二进制原码

(首位表示符号位)

补码
内存中的形式

(*表示无效位,其数量取决于分配的内存空间)

9 01001 01001 0***1001
-1 11 11 1***1 

二 补码是什么

正数: 补码 = 反码 = 原码

负数: 原码取反 = 反码,反码+1 = 补码

??运算时: 符号位不变,有效位进行运算!带*号的为无效位。

例如:

  原码 反码 补码
9 01001 01001 01001
-5 1***101 1***010 1***011

原码中: 9的有效位为1001,5的有效位为101。  

三 计算机输出数据的方式

     转换

内存中补码 ———————> 原码 (显示)

四 按位取反运算符"~"的原理

按位取反: 将内存中的补码按位取反,包括符号位!!

例如:

            按位取反~                           原码显示

9  ---->    补码 0***1001 ------------>   补码 1***0110   ------------>  1***1010  (-10)

        按位取反~                            原码显示

-1 ---->     补码 1***1    ------------->   补码 0***0      ----------->  0  (补码是正数,所以原码也为0)

参考: https://www.cnblogs.com/pxb2018/p/9765849.html



Java按位运算符之按位取反

原文地址:https://www.cnblogs.com/CTW42/p/12375142.html

时间: 2024-10-01 01:37:06

Java按位运算符之按位取反的相关文章

Java的位运算符详解实例

Java的位运算符详解实例——与(&).非(~).或(|).异或(^).右移(>>).左移(<<).无符号右移(>>>) 位运算符主要针对二进制, 它包括了:“与”.“非”.“或”.“异或”."右移"."左移"."无符号右移". 从表面上看似乎有点像逻辑运算符, 但逻辑运算符是针对两个关系运算符来进行逻辑运算, 而位运算符主要针对两个二进制数的位进行逻辑运算. 下面详细介绍每个位运算符. 1.与运

Java的位运算符笔记

Java的位运算符有:&与.|或.^异或.~非.<<算术左移.>>算术右移.>>>逻辑右移 1. &(与) 全是1-->1 全是0-->0 有1有0-->0 例:000 111 010 101 000 111 101 101 ---------------------------- 000 111 000 101 1 int i = 1; //00000000000000000000000000000001 2 int j = 2

Java的位运算符实例——与(&amp;)、非(~)、或(|)、异或(^)

一.Java的位运算符实例——与(&).非(~).或(|).异或(^) 1.与(&) 0 & 2 = 0 0 0 0 0 1 0 0 1 0 2.非(~) ~0 = 7 0 0 0 1 1 1 3.或(|) 0 & 2 = 2 0 0 0 0 1 0 0 1 0 4.异或(^) 1 & 2 = 3 0 0 1 0 1 0 0 1 1 二.运用场景.(类似打标) public enum FlagEnums { A(1, "高"), B(2, &qu

java的位运算符(&gt;&gt;,&lt;&lt;,&gt;&gt;&gt;,&amp;,|)

主要总结下java的位运算符的操作.java的位运算符不紧可以提高运行效率,同时也有会意想不到的效果(java.util.ArrayDeque有很好的体现),在后续中会举例说明. 开始说位运算符之前,先简单的复习下补码的知识,然后举个简单的例子说明下计算机中的补码操作(计算机中的加减法). 补码 计算机进行加减法操作时,都是以补码进行操作的,所以java中的位运算都是以补码进行操作的.正数的补码是其本身,而负数的补码为其反码+1.如下例子. 因为java中int型是4个字节,需要32位,为了写起

[转]Java的位运算符详解实例——与(&amp;)、非(~)、或(|)、异或(^)

位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面详细介绍每个位运算符. 1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段.public class data13{public static void main(String[] args){int a=129;int b=128

Java基础-位运算符Bitwise Operators

Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 原文地址:https://www.cnblogs.com/yinzhengjie/p/8689059.html

Java千问:Java语言位运算符详解

很多编程语言都有位运算符,Java语言也不例外.在Java语言中,提供了7种位运算符,分别是按位与(&).按位或(|).按位异或(^).取反(~).左移(<<).带符号右移(>>)和无符号右移(>>>).这些运算符当中,仅有~是单目运算符,其他运算符均为双目运算符.在讲解这些运算符的使用之前,必须了解一个常识,那就是:位运算符是对long.int.short.byte和char这5种类型的数据进行运算的,我们不能对double.float和boolean进

JAVA 按位运算符的解释

按位运算符 Java定义了几个按位运算符,可以将其应用于整数类型long,int,short,char和byte. 按位运算符对位执行,并执行逐位运算.假设a = 60和b = 13; 现在以二进制格式,他们将如下 - a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a | b = 0011 1101 a ^ b = 0011 0001 a = 1100 0011 假设整数变量A保持60,变量B保持13,则 - publ

java 二进制 位运算符

位运算符 & | ~ ^& : 对两个二进制数按位做与运算,即 1 & 0 = 0; 1 & 1 = 1; 0 & 0 = 0;| : 对两个二进制数按位做或运算,即 1 & 0 = 1; 1 & 1 = 1; 0 & 0 = 0;~ : 对一个二进制数按位取反,即 ~1 = 0; ~0 = 1;^ : 对两个二进制数按位做异或运算,即 1 ^ 1 = 0; 1 ^ 0 = 1, 0 ^ 0 = 0; 相同取0,不同取1另:1)    十进制