首页 > 解决方案 > 如何使用按位运算符从 Java 中的整数交换数字?

问题描述

我想要做的是交换数字,例如 27 到 72。我尝试了下面的代码,但没有任何运气。

static int reverse(int a){
    int r = 0x0FF & a;
    r <<= 4; a >>= 4;
    r |= 0x0FF & a;
    return r;
}

标签: java

解决方案


int are on 32 bits in java (binary), your example deals with 2 decimal digits.

You can not use binary operator on decimal number: each time you shift left, you multiple by 2 (not by 10)

try modulo operator (%) and division, with 10


推荐阅读