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