gpt4 book ai didi

c# - java 和 c# 中右移运算符的不同结果

转载 作者:行者123 更新时间:2023-12-01 06:41:12 25 4
gpt4 key购买 nike

B这是代码:

c#

private void button1_Click(object sender, EventArgs e)
{
int a = -33554432;
byte b = (byte)(a >> 24);
MessageBox.Show(b.ToString());
}

java

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int a = -33554432;
byte b = (byte)(a >> 24);
JOptionPane.showMessageDialog(null, Byte.toString(b));
}

我已经阅读过这个问题,并且我相信有一种相对简单的方法来理解不同的行为,但我需要一些帮助来实现这种理解。请问有人要吗?

非常感谢!

编辑:好的,现在使用 Byte.toString()。 c# 的输出 = 254 java = -2

最佳答案

Java byte 已签名,因此如果数字为负数,>> 将从左侧填充 1 位。

C# byte 是无符号的,因此 >> 运算符填充 0 位。

要么在 C# 代码中将 byte 更改为 sbyte,要么在 Java 中使用 >>>

关于c# - java 和 c# 中右移运算符的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649853/

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