C: "부호가 없는 긴"을 16진수로 인쇄하는 올바른 방법
저는 부호 없는 long variable을 파라미터로 얻는 함수가 있는데 Hex로 출력하고 싶습니다.
올바른 방법은 무엇입니까?
현재 printf를 "%lx"와 함께 사용하고 있습니다.
void printAddress(unsigned long address) {
printf("%lx\n", address);
}
서명되지 않은 긴 육각형에 대한 인쇄물 패턴을 찾아야 합니까? (위에서 언급한 "긴 육각형"이 아니라)
아니면 printf가 비트만 사용해서 숫자를 16진수로 변환합니까? - 그래서 어차피 부호는 신경 쓰지 말아야 하나요?
편집/명확화
이 질문은 혼동에 뿌리를 두고 있습니다: hex는 단지 비트를 표현하는 또 다른 방법이며, 이것은 부호가 있거나 부호가 없는 숫자는 단지 해석일 뿐이라는 것을 의미합니다.따라서 유형이 부호 없이 길다는 사실은 16진수를 변경하지 않습니다.서명되지 않은 것은 컴퓨터 프로그램에서 동일한 비트를 해석하는 방법을 알려줄 뿐입니다.
제대로 하고 있어요.
설명서 페이지에서:
o, u,x,X
서명되지 않은 int 인수는 서명되지 않은 8진수(o), 서명되지 않은 10진수(u) 또는 서명되지 않은 16진수(x 및 X) 표기로 변환됩니다.
그래서 그 가치는.x
항상 그래야만 합니다unsigned
. 그것을 만들기long
크기, 용도:
l
(ell) 다음 정수 변환은 long int 또는 unsigned long int 인수 [...]에 해당합니다.
그렇게%lx
가unsigned long
. 그러나 주소(포인트 값)는 다음과 같이 인쇄해야 합니다.%p
에 캐스팅 됩니다.void *
.
나는 다음과 같은 포맷 지정자가 그것을 시도해봐야 한다고 생각합니다.
printf("%#lx\n",address);
언급URL : https://stackoverflow.com/questions/29509452/c-correct-way-to-print-unsigned-long-in-hex
'programing' 카테고리의 다른 글
C에서 윈도우즈 및 Linux에서 UTF-16을 UTF-8로 변환 (0) | 2023.10.01 |
---|---|
Word press - 비디오의 모든 컨트롤을 비활성화 및 숨김 (0) | 2023.10.01 |
후크를 통한 우커머스 변형 (0) | 2023.10.01 |
CSS 속성 이름에서 별표는 무엇을 합니까? (0) | 2023.10.01 |
$이것 대 jQuery의 $(이것) (0) | 2023.10.01 |