java - 如何使用按位运算符从 Java 中的整数交换数字?
问题描述
我想要做的是交换数字,例如 27 到 72。我尝试了下面的代码,但没有任何运气。
static int reverse(int a){
int r = 0x0FF & a;
r <<= 4; a >>= 4;
r |= 0x0FF & a;
return r;
}
解决方案
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
推荐阅读
- java - 引起:java.lang.ClassNotFoundException:springfox.documentation.common.ClassPresentInClassPathCondition
- excel - VBA删除所有带有空格的行并删除行将包含字符串的单元格
- stripe-payments - 如何使用 Stripe 对既是信用卡又是债务的卡进行收费
- r - As.formula 不能循环工作?(调整回归)
- android - # 导致webview内容被剪切
- r - 在ggplot2中手动添加渐变色列
- javascript - 为什么 Sequelize/Tedious 不能连接到 localhost 数据库?
- r - 寓言包中的不规则时间序列
- reactjs - 如何将多个 Create React App (CRA) 构建添加到 SharePoint 页面?
- delphi-2010 - 使用 Indy 10 发送字节