programing

16진수에 대한 선행 0(C) 인쇄

prostudy 2022. 4. 16. 09:41
반응형

16진수에 대한 선행 0(C) 인쇄

나는 MD5 해시의 결과를 콘솔에 인쇄하려고 하는데 대부분 효과가 있다.정확성을 보장하기 위해 온라인 MD5 계산기를 사용하여 결과를 비교했다.등장인물은 대부분 같지만, 내 것에는 몇 개가 없어 모두 영점이다.

내가 설명할게.결과는 16바이트 미서명 문자 *이다. 나는 이 바이트들을 하나씩 인쇄한다.각 바이트는 화면에 2자를 인쇄한다.그러나 둘 중 첫 번째 문자가 0이면 0을 출력하지 않는다.

printk("%x", result);

결과는 서명되지 않은 문자* 형식이다.포맷을 제대로 하고 있는 건가, 아니면 뭔가 빠뜨린 건가?

사용하다"%02x".

이 두 가지는 출력 범위가 항상 두 글자(적어도)가 되기를 바란다는 것을 의미한다.

0은 패딩이 필요한 경우 공백 대신 0을 사용하는 것을 의미한다.

result포인터, 루프를 사용하여 모든 숫자를 인쇄:

int i;
for (i = 0; i < 16; i++) {
   printf("%02x", result[i]);
}

참조URL: https://stackoverflow.com/questions/12062916/printing-leading-zeroes-for-hexadecimal-in-c

반응형