题目如下:
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as00111001011110000010100101000000).
我用java做,问题是,这个题目输入的参数是int类型,但在leetcode上的一个测试用例是上2147483648,即2的31次方。超出了int 类型的最大值2的31次方减一,它怎么可以输入这个?
还有就是当输入为1时,应返回2147483648,也是超出了最大值。这应该怎么做?
我看别人写的答案都是用位运算的,为什位运算没有整形溢出这个问题?
请问有其他解法吗?