Java中关于十进制数取反问题解决
来源:互联网 发布:程序员和工程师的区别 编辑:程序博客网 时间:2024/04/28 11:12
首先再此申明:正数在计算机中是用二进制表示的,负数在计算机中是用补码表示的.
十进制数取反,举例说明:
比如: 1取反(~1)为-2,-1(~-1)取反为0,首先这问题关系到原码,反码,补码的知识,这里就不做详细说明.
(1)以正整数说明:现在对1以一个字节(1字节为8位)为例:1=0000 0001,~1表示按位取反=1111 1110因为计算机中存储的是补码,解释一下:这个补码的值减1,变成反码 1111 1101,首位为符号位,不变,其余取反,转为原码:1000 0010 = -2;即1取反为-2.
(2)以负整数说明:因为计算机中存储的是补码(二进制),所以我们先求出原码,转化为反码,再加1 为补码(注意符号位不变),在对补码取反(符号位根据取反变化)转化为10进制即为我们所求结果!现在对-1以一个字节(1字节为8位)为例:-1=10000001,反码为:11111110,补码为:11111111,在对补码取反为:00000000,所以转化为10进制为0 ,即-1取反为0.
大家可以用eclipse或者其他开发工具验证:如:
int x = 1 ,y = -1, z = 3, k = -3;
System.out.println(~x);//-2
System.out.println(~y);//0
System.out.println(~z);//-4
System.out.println(~k);//2
0 0
- Java中关于十进制数取反问题解决
- java中关于十进制数左移,右移,无符号右移问题解决
- 关于JAVA中十进制转换二进制的小程序
- java中十进制转二进制
- java中十进制十六进制互转
- Java 中十进制十六进制相互转换
- java中十六进制转十进制方法
- java中表示二进制、八进制、十进制、十六进制
- java中十进制转二进制转换函数
- java中十进制转二进制转换函数
- java中十进制转二进制转换函数
- java中十进制转二进制转换函数
- java中十进制转为二进制源码
- java中十进制转十六进制源码
- java 中二进制、八进制、十进制、十六进制转换
- oracle中关于二进制和十进制之间的转换
- 关于JAVA 和IOS 的十进制转十六进制
- 关于OS中第一线程的问题解决.
- 转- redis 各种数据类型的使用场景
- Eclipse 优化系列
- 黑马程序员---OC封装
- POJ1305(Fermat vs. Pythagoras 毕达哥拉斯三元组解不定方程)
- OSAL串口接收发送数据流程简介
- Java中关于十进制数取反问题解决
- App Transport Security (ATS)
- Android 改变全局字体
- 字符串与指针
- 【asp】asp+ajax无刷新添加好友
- Eclipse智能提示
- php模块memcache和memcached区别分析
- yii 时间控件 输入框
- linux 批量查找替换文件中的某个字符串