'overflow'에 해당되는 글 1건

  1. 2006/08/17 very long word multiplication
STUDY/전공2006/08/17 22:41
32-bit 이상의 데이터를 다루게 될때 당신은 시스템에서 제공하는 long long keyword만 쓸 것인가?

만약 128-bit 연산을 해야한다면? 2048-bit 혹은 그 이상의 bit 를 가진 연산을 해야한다면?

CPU 는 어떻게 long word arithmetic 을 어떤식으로 하는지 알기위해 Assembly Language 를 배운다.

Assem 명령어로 짜야하는 과정을 일단 c-model 로 data를 검증하기 위해 구현했다.

근데 어찌된게 C로 짜는게 더 어려운거 같아 ㅠㅠ

가장 중요한 KEY-point 는

data type 이 가진 고유크기를 벗어나는 overflow 처리이다. 이것때문에 binary 연산을 -_- 몇번을 계속 해봤는지....아..머리 나쁘면 고생~

unsigned 로 작업을 했기 때문에, signed 에 적용이 되는지는 확인해보지 않았지만, 대수를 이용해서 검증해보면 알수 있겠지.

핵심은 이거다.
overflow 가 발생한다면
  a + b = ~ ( ~a  + ~b + 1); 이렇게 하고 carry = 1 이 된다.
overflow 가 발생하지 않을때 위의 연산은 오히려 carry 가 발생해버려서 overflow 를 만든다.

값을 넣어서 해보면 확인할 수 있다.

소스가 궁금한 사람은 개인적으로 연락을 바랍니다.

사정상 소스를 공개할 수 없습니다.
Posted by 영고니짱