什么是最大字节等价于java字节最大值

2024-09-29 21:52:29 发布

您现在位置:Python中文网/ 问答频道 /正文

python是否与代表最大字节的java的Byte.MAX_VALUE等价?我查看了python sys模块,只找到了sys.maxint。它有类似sys.maxbyte的东西吗?在

更新:

在我的例子中,我正在进行Hbase Rowkey扫描,我的Rowkey看起来像rk1\u rk2。为了在不知道确切的rk2的情况下扫描rk1的所有结果,我的java代码如下:

byte[] startRowBytes = "rk1".getBytes(); 
byte[] endRowBytes = ("rk1" + (char) Byte.MAX_VALUE).getBytes(); 

HbaseScanQuery query = new   HbaseScanQuery(tableName, colFamily);
query.setStartRow(startRowBytes).setStopRow(endRowBytes);

我只是想找出字节最大值部分。在


Tags: 字节valuesysjavabytequerymaxgetbytes
2条回答

我认为你必须自己定义价值。一个字节有2^8=256个唯一状态,因此它能代表的最大整数是255。然而,java的字节类型是有符号字节,因此一半状态保留为正(和0),另一半用于否定。因此相当于java的字节最大值是127,相当于java的字节最小值是-128

由于python字节是无符号的,因此相当于java的字节最小值应该是128,这是2的恭维表示法(表示有符号整数的事实标准)中的-128的表示,这要感谢Ignacio Vazquez Abrams指出的。在

我已经有一段时间没有处理python了,但是我相信您想要的是(“rk1”+chr(127))

根据您的更新,有一个更好的答案:不要担心最大字节值是多少。根据HBase documentationsetStartRow和{}方法的工作方式与Python的切片相同;即,开始是包含的,但停止是独占的,这意味着你的endRowBytes应该只是'rk2'。在

另外,文档还提到,您可以通过添加一个字节使停止行包含在内,因此另一个替代方法是'rk1' + chr(0)(或{}或{},以您最清楚的为准)。实际上,链接文档中用于解释HBase扫描的示例正好说明了您的用例。在

相关问题 更多 >

    热门问题