#include <stdio.h>#include <stdlib.h>#include <string.h>intmain(){intn;unsignedintnum,i;charr;chartest[9]="";scanf("%d",&n);while(n--){scanf("%d",&num);for(i=0;i<8;i++){//16진수로 만들어 배열에 저장하는 for문if((num%16)==15)test[7-i]='f';elseif((num%16)==14)test[7-i]='e';elseif((num%16)==13)test[7-i]='d';elseif((num%16)==12)test[7-i]='c';elseif((num%16)==11)test[7-i]='b';elseif((num%16)==10)test[7-i]='a';else{r=num%16;test[7-i]=r+48;//ASCII 코드를 사용해서 더해주는값 // 48을 더해줘야 제대로 출력됨}num=num/16;}charendian[10]={test[6],test[7],test[4],test[5],test[2],test[3],test[0],test[1]};//endian을 바꿔줌unsignedintt=strtol(endian,NULL,16);printf("%u\n",t);//바꾼 endian을 10진수로 다시 출력}}
일단 예시는 입출력이 제대로 됩니다.
예시말고 다른숫자를 입력했을 때 제대로 출력이 안된다는거겠지요..?
물론 제가 코딩을 잘못해서 그런거겠지만
어디가 어떻게 잘못된건지 감도 잘 안잡히는터라...;
제가 우분투 64비트를 쓰고 있는데 그거 때문에 char나 int 타입의 바이트가 2배가 되버려서
그런건지.. 그래서 타입을 이것저것 바꿔봤지만 그거때문은 아닌거 같아서요
어떤 문제가 있는지 잘 감이 안잡히기에 이렇게 애매한 질문은 안되는 거 알지만
질문해봅니다 도와주세요 ㅠ...
M
ENDIANS
일단 예시는 입출력이 제대로 됩니다.
예시말고 다른숫자를 입력했을 때 제대로 출력이 안된다는거겠지요..?
물론 제가 코딩을 잘못해서 그런거겠지만
어디가 어떻게 잘못된건지 감도 잘 안잡히는터라...;
제가 우분투 64비트를 쓰고 있는데 그거 때문에 char나 int 타입의 바이트가 2배가 되버려서
그런건지.. 그래서 타입을 이것저것 바꿔봤지만 그거때문은 아닌거 같아서요
어떤 문제가 있는지 잘 감이 안잡히기에 이렇게 애매한 질문은 안되는 거 알지만
질문해봅니다 도와주세요 ㅠ...
10년 전