java - 为什么这个程序的输出是-4? (Java - 数据类型字节)

标签 java types

我对以下代码有疑问:

public class test {
public static void main(String args[]) {
    byte x = 3;
        x = (byte)~x;
        System.out.println(x);

    }

}

输出为:-4

最佳答案

numver 的二进制否定与对 number+1 取负值相同。原因如下:

二进制 3 为 0011(跳过前导位以使其更具可读性)。

二进制否定~31100

现在,二进制 4 是 0100

要确定-4,首先写二进制否定1011

然后添加一个(参见 wiki )1100

关于java - 为什么这个程序的输出是-4? (Java - 数据类型字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40800007/

相关文章:

java - JAXB 与 JDOM : is it possible to update xml file using JAXB

asp.net - 我使用了正确的内容类型和标题,所以为什么 FireFox 保存没有扩展名的 Zip 文件

typescript - 启用 `strictNullChecks` 后, `void` 类型和 `undefined` 文字类型有什么区别?

list - OCaml 列表类型行为

具有名为 "new"的函数的 Typescript 接口(interface)

java - 服务器和浏览器的时间差

java - Android R参数引用了另一个未知的R

java - Kafka - SimpleConsumer 如何与消费者组关联?

java - 向大纪元时间添加天数 [Java]

Java API设计: narrow return type in methods