[英]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
我想它是一個簡單的值。 在這種情況下,考慮基礎是無意義的。 使用某種編碼來存儲值(無論哪種編碼對您都不重要)。 但是,當您要為變量設置值時,可以使用許多不同的編碼/基礎。 我的意思是,當你寫17
, 0x11
, 0b10001
保存的值總是相同的。 當您在某些算術運算中使用該值時,您不必擔心它的管理方式。 打印值時,可以選擇輸出格式,但這是因為您需要將值轉換為所選的表示形式。
考慮一下您的錢在銀行中的存儲方式:可以給他們硬幣,支票等,但是它們以您不知道的方式(可能是硬盤上的一個簡單數字)存儲值,以及何時您要求他們提款,他們可以給您不同表示形式的價值(硬幣等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.