|
@ 서론
1. 문자열 = "255";
2. 숫자 = 255
3. Hex문자 = "FF"
Hex변환관련 질문을 할때
1,2,3 을 헷갈리게 하는 경우가 많더군요
@ 본론
1. 문자열에서 숫자로 변환은?
StrToInt 함수를 사용하시면 됩니다.
2. 숫자에서 문자열로 변환은 IntToStr 을 쓰시면 되구요
3. 숫자에서 Hex문자열로 변환은 IntToHex 를 쓰시구요
4. Hex문자열을 숫자로 변환은 StrToInt를 쓰면 됩니다.
단 이때는 Hex문자열 앞에 '$' 나 'x' 또는 'X' 또는 "0x" 등을 붙여야 합니다.
즉 Hex문자열 "FF" 를 숫자 255 바꾸려면
"xFF" 나 "$FF"로 문자열을 바꾼후에 StrToInt를 쓰시면 됩니다.
@ 기타
만약에 긴 문자열을 한번에 바꾸시려면?
BinToHex , HexToBin이라는 함수를 이용하실수 있습니다.
가령 다음과 같은 hex문자열을 있다고 합시다.
"38 FC 30 34 30 35 30 20 2F 2F"
위 문자열을 Binary로 변환하시려면?
1. Hex문자사이의 공백을 없애구요
"38FC3034303530202F2F"
2. HexToBin 함수를 사용하세요
unsigned char buf[10];
HexToBin("38FC3034303530202F2F2F2C",buf,10);
반대로 변환도 마찬가지 입니다.
문자열 Buffer를 확보해놓구
BinToHex를 호출하시면 됩니다.
그럼 공백없는 Hex문자열로 변환되어집니다.
그럼..
리오넬메시 님이 쓰신 글 :
: 빌더사용하기 시작한 초보입니다.
:
: 예를들어
: 30 66 66 65 65 63 66 66 65 66 38 66 66 66 30 33 66 66 66 34 33 66 66 66 61 38 30 30 34 30 35 30 20 2F 2F 2F 2F
:
: 이런 HEX값들을 ASCII로 변환하여 값을 얻고 싶습니다.
:
: 찾아보니 델파이 , 비쥬얼베이직 으로 된 코드라 알아보기가 힘드네요 ㅠ
:
: procedure TForm1.Button1Click(Sender: TObject);
: var
: V : Integer;
: begin
: V := StrToInt( Edit1.Text );
: Edit2.Text := intToHex( V, 2 );
: Edit3.Text := char(strtoint(`$`+ IntToHex(Ord(V),2) ));
: end;
:
: 이런식으로라...ㅠ
|