簡體   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