簡體   English   中英

Java:如何從32位HEX獲得高16位和低16位的值?

[英]Java: How to get high and low 16bit values from a 32bit HEX?

需要有關如何執行以下操作的解決方案:接收十進制值,將其轉換為32位十六進制,然后將該32位十六進制分開並獲得高16位和低16位值。 我一直在挖網,找不到太多信息。

不確定為什么要轉換為十六進制,而是將32位值直接轉換為兩個16位值。

int x = ...
short high = x >> 16;
short low = x & 0xFFFF;

我希望這是一個家庭作業問題。 因此,我將為您提供可以幫助您解決問題的信息,而不是解決方案。

  1. 將數字轉換為十六進制。 這可以使用Integer的toHexString()方法完成。
  2. 向左添加足夠的零以使其長八個字符(8個十六進制字符表示32位)。 你可以通過在一個循環中逐個添加零來實現這一點,直到它長達8個字符,或者(更好的方法)只在左邊添加7個零並且只處理最右邊的8個字符。
  3. 將最右邊的4個字符作為低16位,將4個字符緊接在左邊作為高16位。 這可以使用String的substring()方法以及length()和一些簡單的減法來完成。

您可能會發現一些有用的API: http//download.oracle.com/javase/6/docs/api/java/io/DataInputStream.html http://download.oracle.com/javase/6/docs/api/ java / lang / Integer.html #parseInt(java.lang.String,int) http://download.oracle.com/javase/6/docs/api/java/lang/Integer.html#toHexString (int ) http: //commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM