Development Tip

Java의 String.format () 및 16 진수

yourdevel 2021. 1. 7. 20:08
반응형

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

반응형