簡體   English   中英

Java中的String.format()和十六進制數字

[英]String.format() and hex numbers in Java

我試圖找出為什么String.format()的行為方式。

上下文:系統編程類,編寫匯編程序。

目標文件中有一個5字符的十六進制字段,我從一個值創建。

嘗試使用: String.format("%05X", decInt);

這適用於正數(11 - > 0000B )但是它不能用於負數(-1 - > FFFFFFFF而不是FFFFF

我想我可以只取最后5個字符的子字符串,但我還是想弄清楚它為什么會這樣。

格式中使用的寬度始終是最小寬度。 在這種情況下,我建議不要使用子字符串操作:

  String.format("%05X", decInt & 0xFFFFF);

格式寬度僅適用於創建最小位數,並且僅對前導零有影響。

您可以使用位掩碼代替子字符串:

String.format("%05X", decInt & 0x0FFFFF)

順便說一句, 11 - > 0000B ,而不是你問題中聲稱的0000A

暫無
暫無

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

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