请教一下这句话什么意思

爱的狂妄死的嚣张 2013-04-12 09:12:36

bbits += (b.get(j) ? "1" : "0");
...全文
179 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljd1 2013-04-12
  • 打赏
  • 举报
回复
b.get(j) ? "1" : "0" 这是一个三目运算符 b.get(j)这个方法的返回值一定是一个布尔值即true or false,如果返回true则表达式 b.get(j) ? "1" : "0" 返回?号后面的 也就是字符串"1" 反之则返回字符串"0"。bbits 应该是个字符串类型的变量使用 += 运算符将返回的"1"或"0"合并到bbits 并重新赋值给bbits
  • 打赏
  • 举报
回复
import java.util.*; public class Bits { public static void main(String[] args) { Random rand = new Random(); // Take the LSB of nextInt(): byte bt = (byte)rand.nextInt(); BitSet bb = new BitSet(); for(int i = 7; i >=0; i--) if(((1 << i) & bt) != 0) bb.set(i); else bb.clear(i); System.out.println("byte value: " + bt); printBitSet(bb); short st = (short)rand.nextInt(); BitSet bs = new BitSet(); for(int i = 15; i >=0; i--) if(((1 << i) & st) != 0) bs.set(i); else bs.clear(i); System.out.println("short value: " + st); printBitSet(bs); int it = rand.nextInt(); BitSet bi = new BitSet(); for(int i = 31; i >=0; i--) if(((1 << i) & it) != 0) bi.set(i); else bi.clear(i); System.out.println("int value: " + it); printBitSet(bi); // Test bitsets >= 64 bits: BitSet b127 = new BitSet(); b127.set(127); System.out.println("set bit 127: " + b127); BitSet b255 = new BitSet(65); b255.set(255); System.out.println("set bit 255: " + b255); BitSet b1023 = new BitSet(512); // Without the following, an exception is thrown // in the Java 1.0 implementation of BitSet: // b1023.set(1023); b1023.set(1024); System.out.println("set bit 1023: " + b1023); } static void printBitSet(BitSet b) { System.out.println("bits: " + b); String bbits = new String(); for(int j = 0; j < b.size() ; j++) bbits += (b.get(j) ? "1" : "0"); System.out.println("bit pattern: " + bbits); } } bbits += (b.get(j) ? "1" : "0");这句怎么理解
xiaomei__ 2013-04-12
  • 打赏
  • 举报
回复
这个是三元运算, bbits += (b.get(j) ? "1" : "0");b.get(j)返回的值为ture或者false,当返回的是ture则为bbits=bbits+1,false则为bbits=bbits+0。
  • 打赏
  • 举报
回复
thanks
lvzg_005 2013-04-12
  • 打赏
  • 举报
回复
引用 1 楼 sffx123 的回复:
一个个看(b.get(j) ? "1" : "0")三目运算符,b.get(j)为true时是1,false为0,然后bbits = bbits + 这个结果。
详细
sffx123 2013-04-12
  • 打赏
  • 举报
回复
一个个看(b.get(j) ? "1" : "0")三目运算符,b.get(j)为true时是1,false为0,然后bbits = bbits + 这个结果。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧