게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
CPU에서 이루어지는 signed number끼리의 대소비교 관련해서요!
게시물ID : programmer_17576짧은주소 복사하기
작성자 : 창천을꿈꾸며
추천 : 0
조회수 : 385회
댓글수 : 2개
등록시간 : 2016/06/11 19:14:15
옵션
  • 본인삭제금지
논리설계 수업시간에서.. CPU 는 a>b를 a-b를 한 뒤, Overflow의 flag와 음수의 flag가 같을때 a>b라고 판단한다고 하더라구요.

그렇다면, CPU가 3-bit의 Signed number만 담고있다고 생각해보면

-1 > -8 은 어떻게 true인줄 아는건가요?? 

애초에 음.. -1 - (-8) 이 정의 될수가 있나요...? -1 + 8 로 치환이 안될것같은데 말입니다...ㅠㅠ 
( 8은 3bit signed number의 범위를 초과한다고 생각해서 말이여요..!) 

어떻게 -1 > -8 을 판단하는걸까요?? 

32bit integer의 경우엔..

 int b =-2147483648; 
 int a = -1; 
 printf("%d %d\n", a > b,a-b);

가 어떻게 되는지랑 비슷한 질문이겠네요..!!! (a-b는 Overflow가 나는것같고, a-b의 결과는 양수인데.. 어째서 a>b인걸까요?)
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호