여기에 4 자리 hexa를 dec로 변환하려고 시도했지만 성공하지 못했습니다. 여기 내 코드가 있습니다.부호가없는 int 배열에서 16 진수를 10 진수로 변환합니다.
unsigned int array[4];
printf("Type in 4-digit hexa: \n");
scanf("%x", &array);
while(getchar() != '\n');
printf("Your number in dec is %u \n", array);
나는 무엇이 잘못 되었는가는 모르지만 정확한 dec 출력을 제공하지는 않습니다. EEFF를 넣었을 때처럼 61183을 내고 프로그램에서 65518을 인쇄했습니다.
어디에서이 번호가 나옵니까? 내 코드에 무슨 문제가 있습니까? 나는 FFFF가 65385와 같고 unsigned int의 범위가 0에서 65535 사이 인 것으로 간주하여 부호없는 int를 사용했습니다. 데이터 범위에 문제가 없어야하고 % u도 사용했습니다.
일부 검색을 한 후에 생각할 수있는 유일한 점은이 문제는 int 또는 sth에 대한 부호없는 int의 크기와 관련이 있습니다. 설명을 읽었지만 이해가되지 않았습니다.
나는 이것이 중복 일지 모르지만 여기서는 더 쉬운 설명을 묻습니다. 이것이 작동하지 않는 이유는 무엇입니까? 솔직히 말해서, 나는이 사이트와 프로그래밍 모두를위한 절대적으로 새롭다. 그래서 코딩과 함께 나에게 쉽게 가보 십시다. 참고로 저는 stdio.h 바깥에있는 것을 전혀 알지 못합니다.
"unwind"코드를 사용하여 시도해 보았는데 아름답게 작동했습니다. 고맙습니다, 긴장을 푸십시오, 그리고 여기에 와서 나를 도왔던 모든 사람들! –
FYI http://www.cplusplus.com/ -이 사이트에는 많은 예제가 있으며 c/C++의 아름다움을 이해하는 데 도움이 될 수 있습니다 .... – enam
권장 해 주셔서 감사합니다. 나는 확실히 그것을 파헤쳐 볼 것입니다. : D –