小编use*_*105的帖子

按位旋转(循环移位)

我试图用C++编写一些关于"按位旋转"的代码,我想通过左边的shif来做这个.我不知道如何编写代码,但我在"维基百科"中找到了一些像这样的代码.

unsigned int rotl(unsigned int value, int shift) {
return (value << shift) | (value >> (sizeof(value) * CHAR_BIT - shift));
}
Run Code Online (Sandbox Code Playgroud)

然后我试着让它工作,但是这段代码没有给出我期望的输出.防爆.我有数字unsigned int 12,在二进制1100中,当我想用​​左shif按上面的代码进行按位旋转时,输出是和unsigned int 24(11000),它必须给出输出unsigned int 9,因为如果我进行按位旋转(左shif),第一个MSB位现在必须是第一位,所有其他位必须向左移动一位.

你能帮助理解那是什么问题吗?或者我做错了什么.

谢谢.

c++ bit-manipulation

6
推荐指数
3
解决办法
9798
查看次数

Java 中的泛型方法 &lt;T&gt;

下一个方法是通用的,但我只想知道 ? 的用处是什么<T>?,我的意思是<T>who 位于 static 旁边,位于 void 之前。如果我不在我的方法中编写它会发生什么?

public static <T> void nameMethod(BinaryTreeNode<T> t){
     /*do something
         .
         .
     */
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

java generics

-2
推荐指数
1
解决办法
9421
查看次数

标签 统计

bit-manipulation ×1

c++ ×1

generics ×1

java ×1