锁定老帖子 主题:两道笔试题,在找工作的可以看看
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-20
试试这个:
public static final char[] DIGITS = {'0', '1'}; public static String reverseInt(int n) { char[] ches = new char[32]; for(int i = 0; i < 32; ++i) { int bit = n & 1; n >>>= 1; ches[i] = DIGITS[bit]; } return new String(ches); } |
|
返回顶楼 | |
发表时间:2011-04-20
hh161151 写道 我想问一下楼主,这两题是在纸上考呢,还是上机考?
笔试题,一家不知名公司,好像是6张卷子 |
|
返回顶楼 | |
发表时间:2011-04-20
先手后手是个问题吧。。 正在想。
离开学校。。 脑子只会敲键盘了。 |
|
返回顶楼 | |
发表时间:2011-04-20
kanny87929 写道 好题,这种题目只能给对职位相关的人做,其他人一时是不会去触碰的
数次看到这位同学精彩的发言,说的很到位啊。 |
|
返回顶楼 | |
发表时间:2011-04-20
最后修改:2011-04-20
如果可以引入变量,第一题其实很容易:
def reverseInt(i): print bin(i) j = 0 while i + 1 >> 1 >= 1: j = (j << 1) + (i & 1) i = i >> 1 print bin(j) 但是,请注意看lz的方法,如果说题目没有理解错的话,是在不引入临时变量的情况下,把原数据的高低位倒置。这个是比较考人的。 |
|
返回顶楼 | |
发表时间:2011-04-20
NO1:
int a = 12; a & 0x00000001<<8|(a&0x00000010<<7|(。。。。。)) 循环下去把 |
|
返回顶楼 | |
发表时间:2011-04-20
原来不是靠反码,第一题几年前面华为笔试考过,做协议栈的,考位操作也合理
java考这过分了 |
|
返回顶楼 | |
发表时间:2011-04-20
public class testbyte {
public static void main(String[] args) { int a = 123; //int[] temp = new int[8]; int a0 = (a >> 7) & 0x01; int a1 = (a >> 5) & 0x02; int a2 = (a >> 3) & 0x04; int a3 = (a >> 1) & 0x08; int a4 = (a << 1) & 0x10; int a5 = (a << 3) & 0x20; int a6 = (a << 5) & 0x40; int a7 = (a << 7) & 0x80; int out = a0|a1|a2|a3|a4|a5|a6|a7; System.out.println(out); } } |
|
返回顶楼 | |