繁体   English   中英

将4字节的无符号整数(来自文件)与Java中定义的整数值进行比较

[英]Compare a 4 byte usigned integer (from file) with a defined integer value in java

我有一个文件,其中包含要读取的数据,其格式为Little-endian。 为了解析文件,我首先读取一个4字节的无符号整数,然后根据该整数的值执行不同的读取例程。

使用ByteBuffer和此答案 ,我可以读取一个4字节的unsigned int,它很长。 但是在我的代码中,我想使用switch语句,而Java不允许在long上进行开关。

由于我只是检查是否相等,因此可以将4个字节读取为有符号整数并将其与我的已知值进行比较会很好。 但是,我的参考值都定义为无符号整数(例如0xc15ab354)。 是否存在将它们转换为带符号的int的好方法(是的,可以手动完成,但这引入了错误的可能性)以进行比较,或者是进行比较的更好方法?

那很简单。 如果仅将0xc15ab354用作int常量, 0xc15ab354获得具有该精确二进制表示形式的带符号整数,因此可以直接在switch语句中直接使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM