请帮我将Java代码翻译成Pascal。如何从long转换为two-complement,delphi中的big-endian Tbytes
评论:在这里准备数据,8个字节用于营业额计数器(对于每个可能的营业额......都足够了),但是规范只需要至少5个字节的字节0-7用于营业额计数器,其通过8字节双补体,大端表示(等于爪哇LONG),字节8-15被设置为0的负值表示是可能的(非常罕见的)
Long turnoverCounter = 50501;
ByteBuffer byteBufferData = ByteBuffer.allocate(16);
byteBufferData.putLong(turnoverCounter);
byte[] data = byteBufferData.array();
// data result = [0, 0, 0, 0, 0, 0, -59, 69, 0, 0, 0, 0, 0, 0, 0, 0]
的java字节缓冲区数据。 putlong对Pascal感兴趣
谢谢。
默认情况下,Java在Big Endian中写入“long”(而不是“Long”)作为8个字节。 –
“规范只需要5个字节”这5个字节你在想什么,你能澄清你的意思吗? –
对我而言,个别字节为负值似乎很可能。所有字节的一半都是负数。目前还不清楚你是否完全描述了这个问题。 –