int s = 777777777;
int h = 0x0000000f;
int m = 0;
int[] buf = new int[8];
System.out.println(s);
for (int i = 0; i < 8; i++) {
m = s & h;
System.out.println(m);
s = s >> 4;
buf[i] = m;
}
int h = 0x0000000f;
int m = 0;
int[] buf = new int[8];
System.out.println(s);
for (int i = 0; i < 8; i++) {
m = s & h;
System.out.println(m);
s = s >> 4;
buf[i] = m;
}
解决方案 »
- 关于泛型实例,书上的例子,没看懂,有通俗的说法吗?
- 我定义了一个数组如题,在题中的元素20得不到统计,帮帮忙,我是要统计数组中每个元素出现的次数,并将该元素与出现次数输出
- java 编写的爬虫 获取HTML源文件
- JTable的排序问题! 点击table各个列头, 然后table中的数据就会按所点列排序 (用jdk1.5)
- java调用已有的DLL时类型转换问题
- 插入多个表的事务处理,该如何做?谢谢
- Socket 帮忙看看
- 讨论一下,qq里面在输入区域可以插入图片是怎样实现的啊(高分相送)
- 郁闷,散分!……
- 有人愿意帮初学的小师妹理解几个概念吗?
- [求助]大家好,请问对于一个零基础的初学者,该看些什么书呢?
- 请问Swing做QQ弹出消息的问题
m = s & h; 按位与,由于h = 0x0000000f,十六进制数,最后四位是1,其它都是0,h=000…01111。
所以只要取s的最后四位即可,求法:s%(2的4次方)=1,s的最后四位是0001,与h的最后四位按位与,结果是1。s>>4,就相当于,s/(2的四次方)。
int h = 0x0000000f; //h以0x开头表示16进制,0000000f就是15
int m = 0;
int[] buf = new int[8]; //定义一个8位int数组
System.out.println(s); //打印s
for (int i = 0; i < 8; i++) {
m = s & h; //按位与预算,就是转换成2进制后按位与,1&1=1;0&0=0;1&0=0;
System.out.println(m); //打印m
s = s >> 4; //"有符号"右移4位,11111111 ,>>4之后就成了00001111
buf[i] = m; //给数组赋值
}