binary - Java:将 int 转换为字节时,二进制补码如何工作?
问题描述
我有一个关于将 int 转换为字节时二进制补码如何工作的问题。例如,当转换一个值在 127 和 256 之间的 int 时,我得到负值,我想了解如何。我知道高位被丢弃了,所以 256 到 512 之间的任何值都会导致字节变量保持 int 值减去 256;但我很好奇如何计算出二进制的负值。
例如,我很好奇以下代码是如何工作的:
int i = 140;
byte b = (byte) i;
System.out.println(b); // outputs -116
140 在二进制中是 10001100,在我收集的二进制补码中。在二进制中,10001100 如何成为输出 -116 所需的二进制补码?
解决方案
推荐阅读
- azure - 如何在不创建 DHL 或 Fedex 帐户的情况下将日志文件生成到天蓝色?
- apache - Apache 虚拟主机无法连接
- visual-studio-code - 如何从 VSCode 的 Watch 窗口中获取 String 变量的值?
- azure - 如何使用 Powershell 命令或 ARM 命令启动停止 azure 容器实例
- java - WildFly 开放过多端口
- c# - 为什么我会收到带有此代码的“访问已处置的闭包”警告
- node.js - 支持一个或两个或两个命令的 Docker 入口点脚本(即 npm config & npm run)
- javascript - HTML 单击 div 然后突出显示
- docker - 通过 docker-compose down 持久化卷的问题
- c# - 从另一个应用程序的文本框中获取文本和插入符号