gpt4 book ai didi

java - 将代码从 C 转换为 Java : shifts

转载 作者:太空宇宙 更新时间:2023-11-04 02:16:32 25 4
gpt4 key购买 nike

我有一些 C 代码,其中一个无符号整数被一个(有符号的)变量移位。例如,

1u << i;

转换为 Java 时,我可以将其替换为带符号的 int 吗?

我认为左移是安全的,但我不确定右移。

最佳答案

在 Java 中,有两种类型的右移。 >>>将附加 0 来填充正数和负数的空格(逻辑右移),而 >>如果为负则附加 1,如果为正则附加 0(符号扩展)。

在 C 和 C++ 中,>>如果数字是正数,将插入零。但是,对于负数,这种情况取决于实现。可以附加 0 或 1。

JavaScript >> 的行为方式与 Java 相同和 >>> .

在 C# 中,当使用 >> 时对于负数,除第一个外的所有暴露位都设置为 0。第一个保持为 1。

请注意,对于上述所有语言,>>正数附加零。只有负数的情况有所不同。另外,<<将零附加到所有语言的公开位。

关于java - 将代码从 C 转换为 Java : shifts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974829/

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