簡體   English   中英

如何在Java中將十進制值轉換為十六進制int值

[英]How to convert decemial value to hexadecimal int value in java

我有一個int變量,需要發送其十六進制值

int number1=46;
o/p should be 0x2e;

即我可以存儲值int number2 = 0x2e; 輸出不應為字符串。

基本上我使用它來通過緩沖區發送響應,該響應必須為十六進制值

ChannelBuffer response = ChannelBuffers.directBuffer(2);
response.writeByte(o/p i.e number2);

您聲明輸出不應為字符串,但這可能是不可能的。 您可以將0x2e分配給一個int,但它將存儲十進制值。

您可以像這樣將十六進制字符串更改為int並將int更改為十六進制:

//from hexa to decimal
int number = Integer.parseInt(hexaString, 16);
//from decimal to hexadecimal
String hexaString = Integer.toHexString(number);

如果您提供更多詳細信息以說明為什么需要十六進制格式,則此答案可能會在更新中更改,因為兩個值都相同,並且0x2e而不是46只會影響可視化。

編輯:我錯了,發現您可以發送字節值。

int number = 0x2e;
byte hex = (byte) number;

這樣,您就不會使用String並將其按需要以十六進制顯示。

如果輸出不應該是String我想它是一個簡單的值。 在這種情況下,考慮基礎是無意義的。 使用某種編碼來存儲值(無論哪種編碼對您都不重要)。 但是,當您要為變量設置值時,可以使用許多不同的編碼/基礎。 我的意思是,當你寫170x110b10001保存的值總是相同的。 當您在某些算術運算中使用該值時,您不必擔心它的管理方式。 打印值時,可以選擇輸出格式,但這是因為您需要將值轉換為所選的表示形式。

考慮一下您的錢在銀行中的存儲方式:可以給他們硬幣,支票等,但是它們以您不知道的方式(可能是硬盤上的一個簡單數字)存儲值,以及何時您要求他們提款,他們可以給您不同表示形式的價值(硬幣等)。

暫無
暫無

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

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