gpt4 book ai didi

java - Java 会忽略 MSB 上的按位运算吗?

转载 作者:行者123 更新时间:2023-11-29 07:04:16 26 4
gpt4 key购买 nike

我目前在 java 中有一个奇怪的特性,我试图规避。如果我将一个字节定义为 0x80 并且我向右移动 1 个位置,java 将输出 0xC0,而不是 0x40。有人知道为什么吗?

此外,如果我输入 0x70,并向右移动 1 个位置,它会正确输出 0x38。

我在 shorts 和 ints 中也注意到了这种行为。无论何时设置 MSB,MSB 都将保持设置状态,而当该值将被转换为更大的值(ala int)时,"new"空间将填充设置位。

基本上我要问的是这种行为是否正确?

最佳答案

Basically what I'm asking is this behavior correct?

是的,这是正确的。即使您没有显示您的代码,很明显您正在使用 >>> 进行右移,您期望 >>> 运算符的行为。前者执行 符号扩展 以保留通常需要的负数除以 2 的幂的效果。后者是纯位域右移运算符。

关于java - Java 会忽略 MSB 上的按位运算吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com