C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56489] Re:OxF123을 10진수로 나타내라..
라스코니 [chouoo] 1186 읽음    2009-03-23 11:33
C 에서는 둘리님이 말씀하신대로 2's 보수를 사용하니 그걸 염두해 두시고

그러니, 먼저 음수인지 sign bit 을 보고 판단한 후,

음수라면 2's 보수의 역연산을 한후 (즉 -1을 하고, 전 bit 의 보수를 취함, 1111b - 1b = 1110b, ~(1110b) = 0001b )

각 bit position 마다 2^0, 2^1, 2^2,  등의 연산을 하면 되겠죠.

unsigned long long(8 byte), unsigned int(4 byte), unsigned short(2 byte), unsigned char(1 byte) 등에 대해서 모두 동작하도록 하면 재미있을 것 같네요.



송인호 님이 쓰신 글 :
: 이거  소스좀 가르켜 주세요,,,
: 저는 밑에처럼 했는데,, 아무리해도 에러가 나서,,, 쫌 ㅠ
:
: #include <stdio.h>
:
: int main()
: {
:

:  unsigned a = 0xf123,b;
:  printf("a = %d\n",a);

:  if(a & (0xfff<< 15))
:    putchar('-');
:  else putchar('+');

:  putchar((a /=10000)*0x30);
:  a%=10000;
:  putchar((a /=1000)*0x30);
:  a%=1000
:  putchar((a /=100)*0x30);
:  a%=100
:  putchar((a /=10)*0x30);
:  putchar((a %10)*0x30);
:  putchar('\n');

:
:  return 0;
: }

+ -

관련 글 리스트
56483 OxF123을 10진수로 나타내라.. 송인호 1048 2009/03/20
56489     Re:OxF123을 10진수로 나타내라.. 라스코니 1186 2009/03/23
56485     Re:OxF123을 10진수로 나타내라.. 둘리.CSIEDA 1704 2009/03/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.