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
[50172] Re:[질문] 2의 보수(음수)를 10진수로 바꾸는 함수는 없나요???
아제나 [azena] 2416 읽음    2007-08-04 06:06
형 변환을 거쳐서 0 이랑 비교해보면 됩니다.

DWORD i = 0xFFFFFFF1;

if( (signed)i < 0 )
{ 음수처리}
else
{ 양수 또는 0 처리 }

형 변환을 하더라도 데이터 인식의 차이일 뿐이지 실제 메모리 저장값은 변하지 않기 때문에 입맛에 맞게 처리하면 됩니다.

너브 님이 쓰신 글 :
: 안녕하세요^^
: 이론상으로만 2의 보수를 해보았지 이렇게 직접 쓰게 될줄은 꿈에도;;;;
:
: 타입은 DWORD 구요
:
: 10 이면 그냥
: 00 00 00 0a 겠구요...
: -10 이라면
: 10의 보수를 취하면...
: FFFFFFF5
: 이렇게 되고....
: 1을 더해주어서(2의보수)
: FFFFFFF6 이렇게 되는게 맞겠죠???
:
: 문제는 위와 같이 -10의 값이 들어온다면.....
: 반대로 -1 해준다음에 not을 해주는건 알겠는데요...
: 정확하게 음수가 어디부터인지 몰라서요;; ㅜ.ㅜ
:
: DWORD no;                                               // 32-bit unsigned integer.
: long    value
: if (no > (0xFFFFFFFF >>1)       {                   // 1. DWORD 값을 반으로 나눈 값보다 크면 음수 맞나요???
:   no = ~(no -1) ;                                        // 2. 음수의 절대값을 계산...
:   value = - no;                                           // 3.  앞에 (-) 부호를...................
:   //
: }
:
: 위와 같은 방법으로 처리하면 되는 건가요??
: 대충 위와 같은 방법으로 함수를 만들었는데...
: 주석 1번에서 음수부분을 판단을 하는 방법이 맞나요????
:
: 그리고 혹시 함수가 있는지요???

+ -

관련 글 리스트
50171 [질문] 2의 보수(음수)를 10진수로 바꾸는 함수는 없나요??? 너브 1995 2007/08/04
50172     Re:[질문] 2의 보수(음수)를 10진수로 바꾸는 함수는 없나요??? 아제나 2416 2007/08/04
50175         감사합니다. 너브 1029 2007/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.