반응형
Java의 String.format () 및 16 진수
나는 왜 그렇게 String.format()
행동 하는지 알아 내려고 노력하고 있습니다.
컨텍스트 : 시스템 프로그래밍 클래스, 어셈블러 작성.
개체 파일에는 5 자 16 진수 필드가 있으며 값에서 생성하고 있습니다.
사용하여 시도 : String.format("%05X", decInt);
이것은 양수 (11-> 0000B
)에 대해 의도 한대로 작동 하지만 음수에 대해서는 실패합니다 ( FFFFFFFF
대신 -> FFFFF
).
마지막 5 개 문자의 하위 문자열 만 취할 수 있다고 가정하지만, 왜 이런 식으로 작동하는지 알아 내고 싶습니다.
형식에 사용되는 너비는 항상 최소 너비입니다. 이 경우 하위 문자열 연산을 사용하는 대신 다음을 제안합니다.
String.format("%05X", decInt & 0xFFFFF);
형식 너비는 최소 자릿수 를 만드는 데만 작동하며 선행 0에만 영향을줍니다.
하위 문자열 대신 비트 마스크를 사용할 수 있습니다.
String.format("%05X", decInt & 0x0FFFFF)
그런데, 11
-> 0000B
,하지 0000A
등의 질문에 주장했다.
참조 URL : https://stackoverflow.com/questions/9610254/string-format-and-hex-numbers-in-java
반응형
'Development Tip' 카테고리의 다른 글
MSBuild에 "VCTargetsPath"속성에 대한 값이 없습니다. (0) | 2021.01.07 |
---|---|
맞춤 이벤트를 통해 추가 데이터를 전달하는 방법이 있습니까? (0) | 2021.01.07 |
자바 스크립트에 PHP 에코 / 인쇄가 있습니까? (0) | 2021.01.07 |
파이프와 소켓의 차이점은 무엇입니까? (0) | 2021.01.07 |
phpMyAdmin 오류 : mbstring 확장이 없습니다. (0) | 2021.01.07 |