java 位域_在Java中实现C样式位域

我有一个问题,我有点被困住了,一位同事告诉我,这将是寻求帮助的好地方。

我正在尝试在Java中实现C风格的位域。这是一个粗略的示例(目前我还没有实际的代码)。

typedef union

{

typedef struct

{

unsigned short a :1;

unsigned short b :1;

unsigned short c :2;

unsigned short d :10;

} bitfield;

unsigned short bitmap;

}example_bitfield;

我有很多来自遗留代码的类似样式的位域。我需要提出一种等效的Java方法的原因是,我正在开发将使用Java与其他使用UDP的旧应用程序进行通信的代码。

我没有重写代码的选择。我知道这种方法不是可移植的,存在字节序问题(以及填充/对齐等),并且如果我能够重写代码,可以采用更好的方法。不幸的是,我需要针对这个非常具体的问题的答案。系统是封闭的,因此我不必担心编译器/操作系统/

ect的每种可能组合。

使用Java EnumSet的方法将行不通,因为我相信这只会将每个值设为一位。我需要能够将d的值打包(例如占用10位)。

我了解Java Bitset,但是它有局限性。我使用的是Java的较旧版本,因此我没有一些较新的Java

Bitset方法(即valueOf方法可能肯定会有所帮助)。

是否有人对如何使其尽可能易于管理有任何想法?我的通讯需要实现10多个位域。

感谢您提供任何帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值