如何在Java中声明48位固定宽度数据类型?

时间:2011-07-04 20:22:54

标签: java types

是否可以在Java中声明最大48位的固定宽度数据类型? 我需要找到一些存储48个连续位的方法。我尝试使用Byte数组,但因为它是一个连续的数字,所以需要拆分,所以我看不出它是如何工作的,因为我需要严格修复这些值而不超过48-比特长度。

1 个答案:

答案 0 :(得分:2)

现代语言的AFAIK没有48位数据类型。您只能将其声明为字节或短数组。

byte db[size*6];
short ds[size*3];

每个48字节元素可以通过6个连续字节(3个连续短路)访问。可以从48字节组索引

轻松计算数组的索引
long b[i] = db[i*6] << 40 | db[i*6+1] << 32 | db[i*6+2] << 24 |
            db[i*6+3] << 16 | db[i*6+4] << 8 | db[i*6+5];
long c[i] = ds[i*3] << 32 | db[i*3+1] << 16 | db[i*3+2];

也可以从字节/短数组索引计算48字节索引。 db [i]将是i % 6 th 48位int的i / 6 th 字节。

或者您可以声明一个字节/短路类以便更方便地访问

class my6bytes {
    byte d[6];
}

my6bytes d6b[size];

class my3shorts {
    short s[3];
}

my3shorts d3s[size];