`

按位取反的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基础之java的移位运算

    按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为: 00101010 经过按位非运算成为 11010101 按位与(AND) 按位与运算符“&”,如果两个运算数都是1,则结果为1...

    JAVA计算器课程设计

    简单的计算器,通过按钮实现简单的加减乘除取反的运算。

    java课程设计-计算器-功能完整的科学计算器-仿windows计算器

    java课程设计,里面包含源程序和课程设计报告 题目要求:编写一计算器,仿照windows xp计算器界面,能实现基本的运算及一些科学运算。 能实现的运算如下: "+",加 "-",减 "*",乘 "/",除 "x^y",x的y次方 "Mod",取模 ...

    java计算器编程源代码

    本人应某位网友的要求用Java做了一个简易的计算器,包括加减乘除运算,sin,cos,ln,开方,取反等多种运算。

    C#中的位操作小结

    位操作符是对数据按二进制位进行运算的操作符。位操作是其他很多语言都支持的操作,如C、C++和Java等,C#也不例外支持位操作。注意位操作支持的数据类型是基本数据类型,如byte、short、char、int、long等,C#支持的...

    整理后java开发全套达内学习笔记(含练习)

    进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...

    2.Java基础语法.ppt

    支持下载,一、数据类型 常量是有数据类型的 变量必须声明其数据类型 (1)划分: 1.基本数据类型(四类八种) 数值型: ...~:一个正数取~时,取反、减一、取反、加符号 一个负数取~时,直接取反

    js实现特定位取反原理及示例

    机试题碰到了这道位运算的题目,按理说是非常简单的,原理笔者也很清楚,但是由于实在是好多年没有搞过位运算了,Java位运算更是没有操作过,所以结果实在是不体面…… 机试时间规定是一个小时,语言可选C或Java还有...

    二进制运算

    java int 类型4个字节,1个字节有8位, int的类型有32位 ... 负数反码的原码的符号位不变,其它的位数取反(0-1==1-0) 负数补码是反码+1 0的反码和补码都是0 java中所有数都是符号的 计算机都是以补码的方式来计算

    java计算器

    用java做的计算器,实现了加、减、乘、除、开方、取反运算,并可进行一串计算式的计算。可供初学者学习~

    使用Java AWT和Swing实现的简单计算器

    使用Java AWT和Swing实现的计算器,其中的输入输出框为TextField,其余按钮均为JButton,可以实现加、减、乘、除、取反、求倒运算。

    java基础,笔记03

    取反 是位运算符 对二进制表示的数值进行运算 int a 3; int b 2; boolean b9 a++ > b & a % b++ 1 & a < b ; 3>1 & 3%1 1 a 4 b 1 a 3 b 2 左移 无所谓带符号或无符号 因为最高...

    javascript 二进制运算技巧解析

    ~ Math.pow(2,31)-1 // -2147483648 ~ 2147483647 原码:最高位 0 表示正,1表示负,其余 31 位是该数的绝对值(真值的绝对值)的二进制形式 反码:正数反码与原码相同,负数反码是原码符号位不变,其余31位取反(0...

    基于Java实现 TCP 协议端到端的可靠传输【100012105】

    将发送的进行检验和运算的数据分成若干个 16 位的位串,每个位串看成一个二进制数,这里并不管字符串代表什么,是整数、浮点数还是位图都无所谓。并且将二进制数取反后相加,如果最高位发生进位采取循环进位,同时...

    微软JavaScript手册

    ~ 运算符 对表达式执行按位“非”(取反)运算。 | 运算符 对两个表达式执行按位“或”运算。 |= 运算符 对变量和表达式的值执行按位“或”运算,结果赋给变量。 || 运算符 对两个表达式执行逻辑或运算。 ^ ...

    二进制图文详解

    1. ~ 取反运算 2. & 与运算(逻辑乘法) 运算规则: 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 与运算用途: n: 00010100 11010111 01010001 11101010 m: 00000000 00000000 00000000 11111111 n&m----...

    hive函数大全(中文版)

    9.位取反操作: ~ 10 三、逻辑运算: 10 1. 逻辑与操作: AND 10 2. 逻辑或操作: OR 10 3. 逻辑非操作: NOT 10 四、数值计算 11 1. 取整函数: round 11 2. 指定精度取整函数: round 11 3. 向下取整函数: floor 11 4. ...

    javascript运算符——逻辑运算符全面解析

    逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非’!’、逻辑与’&&’、逻辑或’||’3种,本文将介绍这三种逻辑...

    Python编程入门经典

    4.4 对真值和假值取反 53 4.5 观察多个比较运算的结果 54 4.6 循环 57 4.6.1 重复执行操作 57 4.6.2 终止循环 59 4.7 处理错误 62 4.8 本章小结 64 4.9 习题 65 第5章 函数 67 5.1 将程序放在单独的文件中 67 5.2 ...

    精通JavaScript

    • 3.17.htm 用()改变运算优先级 • 3.18.htm 运算符结合性 第4章(\第4章) • 4.1.htm 条件语句内单行代码的写法 • 4.2.htm 变量赋初值 • 4.3.htm if…else举例 • ...

Global site tag (gtag.js) - Google Analytics