|
안녕하세요^^
이론상으로만 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번에서 음수부분을 판단을 하는 방법이 맞나요????
그리고 혹시 함수가 있는지요???
|