为什么字节b =(字节)0xFF等于整数-1? [英] Why byte b = (byte) 0xFF is equals to integer -1?

查看:1314
本文介绍了为什么字节b =(字节)0xFF等于整数-1?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么字节b =(字节)0xFF 等于整数 -1

例如:

int value = byte b = (byte) 0xFF;
System.out.println(value);

它会打印 -1

推荐答案

字节用Java签名。在二进制0x00中为0,0x01为1,依此类推,但所有1(即0xFF)为-1,0xFE为-2,依此类推。请参阅二进制补码,这是使用的二进制编码机制。

Bytes are signed in Java. In binary 0x00 is 0, 0x01 is 1 and so on but all 1s (ie 0xFF) is -1, 0xFE is -2 and so on. See Two's complement, which is the binary encoding mechanism used.

这篇关于为什么字节b =(字节)0xFF等于整数-1?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆