使用按位移位反转数字 [英] Reversing a Number using bitwise shift
本文介绍了使用按位移位反转数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试找到一种方法来反转数字无
I am trying to find a way to reverse a number without
- 将其转换为字符串以找到长度
- 反转字符串并将其解析回
- 运行一个单独的循环以计算长度
我目前正以这种方式
public static int getReverse(int num){
int revnum =0;
for( int i = Integer.toString(num).length() - 1 ; num>0 ; i-- ){
revnum += num % 10 * Math.pow( 10 , i );
num /= 10;
}
return revnum;
}
但是我想实现以上3个条件.
But I would Like to implement the above 3 conditions.
我正在寻找一种方法,可能使用按位移位运算符或其他某种按位运算.
I am looking for a way , possibly using the bit wise shift operators or some other kind of bitwise operation.
有可能吗?如果可以,怎么办?
Is it possible ? If so how ?
PS:如果输入1234,则应返回4321.我只会反转整数和多头
推荐答案
怎么样:
int revnum = 0;
while (num != 0) {
revnum = revnum * 10 + (num % 10);
num /= 10;
}
return revnum;
代码期望输入非负数.
这可能对您无关紧要,但是值得注意的是getReverse(getReverse(x))
不一定等于x
,因为它不会保留尾随零.
This may or may not matter to you, but it's worth noting that getReverse(getReverse(x))
does not necessarily equal x
as it won't preserve trailing zeroes.
这篇关于使用按位移位反转数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文