【发布时间】:2020-09-20 06:56:22
【问题描述】:
例如,当我有一个像 0x54 这样的二进制数字时,它会是 01010100。使用按位运算符“>>”后,这个数字将变成 00101010。最高有效位不是 0,而是需要它是一个。我怎样才能做到这一点?
【问题讨论】:
-
你还知道哪些二元运算符?
-
请注意,
>>采用 两个 操作数。在您的示例中,您显然写了0x54 >> 1。你会一直写>> 1,还是有时会移动不止一个?如果是后者,那么——在这种情况下你需要什么行为? -
另外,在您的示例中,您显示了八位。假设您使用的是
byte类型是否公平,这样最高有效位将始终是 0x80 处的位? -
(x >> 1) | (1 << 31)表示整数。 -
@BeauVansiclen:回复:“由 32 位组成的长整数”:但是您已将此问题标记为 [java],而在 Java 中,
long始终为 64 位。 (它的 32 位对应物是int。)
标签: java binary bit-manipulation bitwise-operators