首页 新闻 会员 周边 捐助

如何将int类型的高4位和低4位互换

0
悬赏园豆:5 [已解决问题] 解决于 2014-02-12 18:12

如题,不是转字符串再换的方法

比如int a=12457122454,将a的高4位低4位互换后为245471221245

baoj2010的主页 baoj2010 | 初学一级 | 园豆:102
提问于:2014-02-12 16:24
< >
分享
最佳答案
0

先将a转换为字符串,在互换,然后在转换回来。

收获园豆:5
夏眸忆伤89 | 菜鸟二级 |园豆:207 | 2014-02-12 16:38

这个我也会,我要的是不转字符窜的其他方法

baoj2010 | 园豆:102 (初学一级) | 2014-02-12 16:41

@baoj2010: 

你给的这个数已经超出范围了

int a=112678012;
int length=String.valueOf(a).length();
if(length>8){
int m=(int)Math.pow(10, length-4);
int end=a/m;
int top=a%10000;
int middle=a-m*end-top;
a=(int) (Math.pow(10, length-4)*top+middle+end);
System.out.println(a);
}如果你不用字符串求长度的话,自己写个方法也可以求

夏眸忆伤89 | 园豆:207 (菜鸟二级) | 2014-02-12 17:46

@baoj2010: length的长度也可以为8,把length>8改为>=8.

夏眸忆伤89 | 园豆:207 (菜鸟二级) | 2014-02-12 17:52
其他回答(2)
0

int 型  是 32位 的, 你什么意思啊 

还在想啊 | 园豆:160 (初学一级) | 2014-02-12 16:27
0

可以整除或者求余数  得到高四位与低四位 然后乘以10....加在一起 话说int 有那么大吗?不报错?????

wolfy | 园豆:2636 (老鸟四级) | 2014-02-12 16:51

还有个前提是不知道这个数是几位的,这是我今天遇到的蛋疼的面试题

支持(0) 反对(0) baoj2010 | 园豆:102 (初学一级) | 2014-02-12 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册