아무래도 전산개론 공부를 하셔야 할 거 같은데요.
이진수든 16진수든 그건 보는 사람의 입장에서 표현하는 방법이 다른 것이지 실제로 읽는 데이터와는 별개의 문제죠.
그리고 메모에 0, 1, 이렇게 표시된다면, 정확하게는 이미 문자열로 변환된 것이구요.
어쨌든, 아래 함수는 제가 예전에 만들어놨던 정수->2진수(정확하게는 2진수 형태의 문자열) 변환 함수입니다. 파일에서 읽은 값들을 바이트별로 integer로 캐스팅한 후에 이 함수의 첫번째 인자로 넣으면 됩니다. 두번째 인자는 길이인데 바이트 단위니까 8을 넣어주면 되죠.
function IntToBin(Value, Digits: integer): string;
begin
while Value<>0 do
begin
Result := Char((Value and 1)+Ord('0')) + Result;
Value := Value shr 1;
end;
if Digits>Length(Result) then
Insert(StringOfChar('0', Digits-Length(Result)), Result, 1);
end;
축구 님이 쓰신 글 :
: 아 전 0,1 로만 표기 하려고요
:
: 저거를 2진수로 바꾸면 되는지 아니면 아예 처음부터 바이너리로 읽어올 수 가 있는지
:
: 근데 파일스트림 리드하면 2진수로 바이너리로 기본으로 읽힌다고 알고 있거덩요.
:
: 근데 그걸 출력하면 값이 그대로 출력이 되서 어떤명령을 써야 0,1로 출력 하는지 그게 궁금해서요 ㅎ
:
:
: 박지훈.임프 님이 쓰신 글 :
: : 파일의 내용을 메모장으로 뿌리려고 하신다고 하시지 않으셨나요.
: : 그러면 파일의 각 바이트를 IntToHex()에 넣어서 16진수 형태의 2바이트짜리 문자열로 만들고 이걸 메모에 뿌리면 되겠지요. 파일의 각 바이트는 AnsiChar로 나오니까 IntToHex()에 넣을 때 integer로 캐스트해야 할 거구요.
: :
: : 혹시 16진수 헥스코드값을 뿌리려는 게 아니고 다른 의미이신지?
: : 바이너리 값을 사람이 볼 수 있게 뿌리는 방법은 일반적으로 16진수 표기인데요.
: :
: :
: : 축구 님이 쓰신 글 :
: : : 해보니까요 아스키코드 값으로 나오는데 이걸 2진수로 바꿔주면 되는건가요?
: : :
: : :
: : : 박지훈.임프 님이 쓰신 글 :
: : : : 헬프에서 IntToHex()를 찾아보시면 어떻게 할지 감이 오실 겁니다.
: : : :
: : : :
: : : : 축구 님이 쓰신 글 :
: : : : : 어떤파일이든지 0과 1로 구성이 되있는데 이것을 메모장에 찍어줄때는 어떤 명령어를 써야 하는지요?