[英]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.