저는이 점에 상당히 좌절감을 느끼고 있습니다. 제가 잘못하고있는 것을 정확하게 파악하는 유일한 방법은 훌륭한 사람들에게 물어 보는 것입니다. 나는 (숫자 값을 포함하는) 문자열을 16 진수로 변환하려고한다. 여기에 내 코드가있다. (참고로, 글자에 10-15를위한 스위치를 아직 배치하지 않았다. 나는 이걸 실행할 때 정수 값을 돌려주고 싶었다. ... 운이 없음) :C에서 포인터를 사용하여 16 진수 변환을 계산할 수 없습니다
void toHex(char *inString){
char *charVal = inString;
char decVal[100];
for(int i = 0; decVal[i] != '\0'; i++){
decVal[i] = *charVal;
charVal++;
}
char storeMod[100];
int i = 0;
int testVal = atoi(decVal);
for(i; testVal >= 16; i++){
int a = testVal;
testVal = testVal/16;
storeMod[i] = a;
}
int a = 0;
char hexval[100];
hexVal[0] = '0';
hexVal[1] = 'x';
for(int j = i+2; j>=2; j--){
hexVal[j] = storeMod[a];
a++;
}
printf("%s hex valu\n", hexVal);
return;
}
예를 들어
는
@ 300 개 수익률의 입력은, 나는 또한 시도 :
잘못도 분명히 300 3fa844e0의 16 진수 값을 반환char hexVal[100];
sprintf(hexVal,"%x",*inString);
strcpy(instring,hexVal);
. 어떤 도움을 주셔서 감사합니다, 나는 8 진수도 그렇게해야합니다 그래서이 개념을 파악하고 내가 뭘 잘못하고 있는지 확인해야합니다.
스타일과 명료성을 위해'toHex'의 첫 번째 루프를'strcpy'로 바꾸는 것이 좋습니다 –