|
만해 님이 쓰신 글 :
: 안녕하세요 만해 입니다.
:
: 제가 친구 부탁으로 리포트를 해주게 되었는데요~
:
: 물론~ 그냥은 아니지만~
:
: 인티져 값을 가져와서 바이너리 연산을 해서
:
: 덧셈도 바이너리로 처리하고
:
: 뺄셈도 바이너리로 처리하라고 하는데요
:
: 인터져를 어떻에 바이너리로 출력 시키는지 잘 모르겠네요
:
: sprintf(temp."%b",int) <- 이렇게 하니깐 "b"라는 글자만 나오고요
:
: 어떤식을 해줘야지 int형 변수의 바이너리 값을 얻을수 있는지 좀 알려 주세요
:
: 그럼 이만
재밌는 질문이네용..
기본적으로 대부분의 C/C++ 컴파일러는 10진수, 8진수, 16진수만 처리할 뿐,
이진수를 직접적으로 처리하지 않습니다.
(물론 그런 컴파일러도 있다는 걸 책에서 읽은 적이 있습니다. 0b1101 식으로 말이죠.)
결국은 문자열을 사용해야한다는 얘기지요.
가장 무식한 방법을 생각하자면,
중학교 수학시간에 배우신 대로 10진수를 2진수로 변환하는 앨거리듬을 직접 구현하시면 되고요.
만약 이 정도 앨거리듬 구현도 하기 싫으시다면, ^^;
sprintf(temp, "%x", nDecimal)이나, 빌더의 IntToHex()를 사용하여
정수값을 16진수 형태의 문자열으로 변환해줍니다.
이렇게 만들어진 16진수 문자열의 0부터 f까지를 0000에서 1111로 변환하는
무식한(?) switch ... case 문을 사용해서 이진수 문자열로 변환하면 되겠죠.
|