繁体   English   中英

BitSet向后显示值?

[英]BitSet shows up values backward?

我已经设置了以下使用Java运行的代码:

BitSet bitSet = BitSet.valueOf(new byte[] { (byte)15 });
System.out.println(bitSet);

令我惊讶的打印

{0, 1, 2, 3} //the indexes of the 1's in the bitset

代替

{ 4, 5, 6, 7 }.

如果我没有弄错的话,15 in 2的补码写成00001111(带1个字节)。

这让我想知道为什么BitSet会向后显示索引。 有没有合理的解释?

引用BitSet的Java标准:

返回此位集的字符串表示形式。 对于此BitSet包含设置状态位的每个索引,该索引的十进制表示包含在结果中。 这些索引按照从最低到最高的顺序列出,用“,”(逗号和空格)分隔并用大括号括起来,从而产生一组整数的通常数学符号。

如上所述,订单是“从最低到最高”。 这意味着首先是最低有效位(1位),最后是最高有效位。

订购(从左到右的符号顺序或从最少到最大的数字顺序)是有意义的,尽管是以不同的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM