`

按位取反的Java运算

阅读更多

Q:

int整数~12计算后是-13.这个是MYECLIPSE计算结果.看了下安位取反的原理就是将整数转为2进制,然后按每个位置如果是"1"就取"0",如果是"0"就取"1".那么按我的理解,首先先把12转换为二进制,也就是1100.然后安位取反几0011.那么我计算出来的结果是3.我知道我理解错了,可是不知道为什么.还有二进制怎么表达负数.有人说"11111111 11111111 11111111 11111111"等于-1.可是这个数我是不是也可以理解为普通二进制度转为十进制度的8589934591.到底要怎么理解安位取反呢,我一直不理解.象"按位与"和"按位或"都相对好理解.就卡这个了,请高手详细解释下.

 

 

A:

首先,你要知道java中的int是32位的
其次,正数以原码的形式存储,负数以补码的形式存储
12的二进制是0000 0000 0000 0000 0000 0000 0000 1100

取反后得1111 1111 1111 1111 1111 1111 1111 0011

java中都是有符号数,首位是1,所以是负数,负数也就是补码,也就是说
1111 1111 1111 1111 1111 1111 1111 0011是补码
补码,反码加1后得源码
转换成源码得0000 0000 0000 0000 0000 0000 0000 1101
这个数是13,加上符号就是-13

分享到:
评论

相关推荐

    java位运算大全.doc

    在Java中,位运算符包括右移(>>>),左移(),无符号右移(>>),按位与(&),按位或(|),按位异或(^)以及按位取反(~)。其中,除了按位取反是单目运算符外,其他都是双目运算符,操作数必须是整型或字符型数据。 补码是Java中...

    JAVA位运算.pdf

    ### JAVA位运算详解 在Java编程中,位运算是一门精细的艺术,涉及到对整数类型的二进制位进行直接操作。这些操作不仅能够优化代码执行效率,还常用于实现特定的算法需求。本文将深入探讨Java中的位运算,包括位...

    Java中的位运算

    - **按位取反(~)**:将每个位取反,即0变1,1变0。 - **左移位()**:将操作数的所有位向左移动指定的位数,高位丢弃,低位补0。 - **右移位(>>)**:将操作数的所有位向右移动指定的位数,对于正数,高位补0;...

    java 位运算知识点

    4. **按位非(~)**:对操作数的每一位取反,0变为1,1变为0。 5. **左移()**:将操作数的二进制位向左移动指定的位数,右边用0填充。 6. **右移(>>)**:将操作数的二进制位向右移动指定的位数,左边根据操作数的...

    位运算课件(java学习位运算课件)

    在Java中,位运算主要包括按位与(&),按位或(|),按位异或(^),按位非(~),左移(),右移(>>)和无符号右移(>>>). 这些运算符可以在整型变量之间进行,用于直接操作它们的二进制表示。例如,按位与运算符"&"用于两个位...

    java位运算,符号运算 详细解释

    Java位运算是一种底层操作,它直接作用于二进制位,是计算机科学中的基础操作。在Java编程中,位运算可以用于高效地处理数据,尤其是在处理数组、位集或者进行低级优化时非常有用。本篇文章将深入探讨Java中的位运算...

    20191220-Java位运算_java_位运算_

    Java位运算在编程中是一种非常基础且强大的操作,它直接作用于二进制位,能够进行高效的数值处理和数据操作。本文将深入讲解Java中的位运算,并通过雪花算法的应用实例来进一步阐述其重要性和用法。 1. **位运算...

    Java运算案例(算数运算+赋值运算+逻辑运算+关系运算+自增运算+自减运算+条件运算+位运算)

    位运算符作用于二进制级别,包括按位与(&), 按位或(|), 按位异或(^), 左移(), 右移(>>), 无符号右移(>>>), 以及按位取反(~)。位运算通常在处理位标志或低级别数据操作时使用。 通过实际案例学习和练习这些运算符,...

    Java 中的位运算

    - **按位非 (`~`)**:对二进制数进行按位取反操作,即将每个位上的值反转。 - 示例:`~5 = -6` - `5` 的二进制表示为 `00000000000000000000000000000101`,按位非操作后得到 `11111111111111111111111111111010`...

    java位运算大全.pdf

    首先,位运算的基本操作包括按位与(&)、按位或(|)、按位异或(^)和按位取反(~)。按位与运算符(&)对两个数的每一位进行比较,只有当两个相应的位都为1时结果位才为1,否则为0。按位或运算符(|)则是只要两个相应的位有...

    java位运算.docx

    Java 位运算是一种底层操作,它直接作用于整数类型的二进制表示,常用于高效地处理数据。在Java中,所有的整数类型(byte, short, int, long)都是以补码形式存储的,其中最高位是符号位,0表示正数,1表示负数。...

    java位运算

    Java位运算是一种在计算机科学中广泛使用的操作,它涉及到对二进制位的直接操作,包括按位与、按位或、按位异或、按位非、左移、右移以及无符号右移等。这些操作对于理解底层计算原理、优化代码性能以及在特定场景下...

    Java位运算的应用

    Java中的位运算是一种高效的操作方式,它可以直接对二进制数据进行操作,广泛应用于各种算法和数据处理中。本文将详细介绍这些位运算的应用,并通过具体的例子来解释它们的工作原理。 1. **奇偶数判断**:`a&1`可以...

    java位运算1.pdf

    Java中的位运算是一种底层操作,它直接作用于二进制数据,可以用于高效地处理整数,尤其是在内存有限或者需要高性能计算的场景中。本文主要介绍Java中的位运算及其应用场景。 1. **位运算的表示方法** - Java中...

    java 位运算知识

    Java 位运算是编程语言中的一种底层操作,它允许我们直接对整数类型的数据进行按位操作,包括按位与(&)、按位或(|)、按位异或(^)、按位非(~)以及左移()、右移(>>)和无符号右移>>>。这些操作在处理二进制数据、优化...

    JAVA基础之java的移位运算

    位非运算符“~”对每个位进行取反,例如,数字42(00101010)经过按位非运算成为11010101。 **按位与(AND)**: 位与运算符“&”仅当两个操作数在相应位上都是1时结果才为1,例如42(00101010)与15(00001111)按...

    java二进制运算器(加、见、乘、除)

    6. **Java中的位运算符**: Java提供了多种位运算符,包括按位与(&),按位或(|),按位异或(^),左移(),右移(>>或>>>),以及按位非(~)。这些运算符在处理二进制数据时非常有用。 7. **二进制转换**: 在Java中,我们...

Global site tag (gtag.js) - Google Analytics