我需要实现一个向左循环 int 的最后 10 位的函数。
所以如果 int 有价值
0b 1111 0000 0000 0000 0000 1100 1100 0000
Run Code Online (Sandbox Code Playgroud)
左旋转 2 会给我们
0b 1111 0000 0000 0000 0000 1111 0000 0000
Run Code Online (Sandbox Code Playgroud)
再向左旋转 1 会得到
0b 1111 0000 0000 0000 0000 1110 0000 0001
Run Code Online (Sandbox Code Playgroud)
ptr- 指向我们想要旋转的给定 int 的指针n- 我们想要旋转多少次void leftRotateLast10Digits(int * ptr, int n) {
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我们想旋转整个 int 该怎么做,但我不知道如何只旋转最后 10 位数字。我认为左旋转一个 int,它看起来像下面这样。但我仍然不明白如何只旋转最后 10 位数字。
void leftRotate(int * ptr, int n) {
int DROPPED_MSB;
int INT_BITS = sizeof(int) * 8 …Run Code Online (Sandbox Code Playgroud) 问题问,
让 int x = 1,找到一个 int y 的值,其中以下语句将返回 false:
(x < y) == (-x > -y)
我知道答案应该是 4 个字节长(8 个十六进制数字),但我不知道如何解决这个问题。