java中原码、反码与补码的问题分析
JAVA 问题 分析 补码 反码 中原
2023-06-13 09:14:51 时间
1.原码
将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。
为了简单起见,我们用1个字节来表示一个整数。
+7的原码为:00000111
-7的原码为:10000111
一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1,其余各位是对原码取反。
为了简单起见,我们用1个字节来表示一个整数:
+7的反码为:00000111
-7的反码为:11111000
3.补码
补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。为了简单起见,我们用1个字节来表示一个整数:
+7的补码为:00000111
-7的补码为:11111001
已知一个负数的补码,将其转换为十进制数,步骤:
1、先对各位取反;
2、将其转换为十进制数;
3、加上负号,再减去1。
例如:
11111010,最高位为1,是负数,先对各位取反得00000101,转换为十进制数得5,加上负号得-5,再减1得-6。
我把inta=232;进行强转为byte类型时为什么是负数???
相关文章
- java 把对象转成map_Java对象转换成Map[通俗易懂]
- java数组反转,Java数组反转
- java指定长度数组长度_Java声明数组时不能指定其长度[通俗易懂]
- Java中Lambda表达式的使用「建议收藏」
- java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)…
- java编写定时程序_java编辑器
- uint32 java_关于Java的int和C的uint32之间的转换
- java——String中的大小写字母的转换 substring()方法的介绍
- 【Java 并发编程】线程操作原子性问题 ( 问题业务场景分析 | 使用 synchronized 解决线程原子性问题 )
- 【Java 并发编程】线程锁机制 ( 悲观锁 | 乐观锁 | CAS 三大问题 | ABA 问题 | 循环时间长问题 | 多个共享变量原子性问题 )
- Java问题-java进程占用内存过高,排查原因详解编程语言
- 关于java idea 创建spring boot没有下载依赖的解决方案详解编程语言
- Redis与Java实现数据过期管理(redisjava过期)
- key处理解决Redis Java环境中过期Key问题(redisjava过期)
- 挑战未来:学习Linux与Java(学linux还是java)
- 时间设置处理Java中Redis Key过期时间的方法(redisjava过期)
- 时间解决java中Redis过期时间设置问题(redisjava过期)
- 使用Java语言写Redis实现一个分布式缓存系统(用java写个redis)
- 收购Oracle收购Java重新定义软件开发未来(java被oracle)
- 数据库Java编程修改Oracle数据库的实践(java修改oracle)
- java获取当前日期使用实例
- Java函数式编程(八):字符串及方法引用