char* ptr=addr
printf("%02x",*(ptr+i)); printf("%02x",ptr[i]);
양쪽 모두 해당 바이트가 0xff 일때 ffffffff 로 출력되더군요.
ptr을 unsigned char* 로 선언해주면 정상적으로 ff 가 뜹니다. 이유를 모르겠는데 혹시 답변을 주시거나 참고할만한 것을 알려주시면 감사하겠습니다.
%x format의 parameter는 int type 입니다. 따라서 char type이 아니므로 sign extension이 발생합니다. signed char -> int와 unsigned char -> int의 음수 변환 차이만 알면 쉽게 이해할 수 있습니다.
감사합니다!
sign extension 검색 바랍니다.
%x format의 parameter는 int type 입니다.
따라서 char type이 아니므로 sign extension이 발생합니다.
signed char -> int와 unsigned char -> int의 음수 변환 차이만 알면 쉽게 이해할 수 있습니다.
검색했습니다.
감사합니다!