5.625를 메모리에 저장한다고 치자.
2진수로 변환하면
일단 5 부터 = 2로 슝슝 나누어서 나머지 역으로 보면 101이 나온다.
아니면 1 2 4 8 로 자리수가 나가니까
1 4 만 켜주면 되니까 101
0.625는 2를 곱해서 정수가 되는 넘만 적는다.
0.625*2 = 1.250
0.250*2 = 0.500
0.500*2 = 1
정수자리면 보면 101
그래서
101.101이 된다.
지수형태로 나타나면 .을 앞으로 땡기고
1.01101 * 2 * 2
가 된다. 뭐 2진수에 2자리 앞으로 땡겼으니까.
메모리 저장할 때는
부호부(sign bit) 1 bit
지수부(exponent bit) 8 bits
가수부(mantissa bits) 23bits
유효자리수(precision) 6~7
로 구성된다.
float 일 때, double일 때는 1, 11, 52, 15~16 이다.
위에서 지수부는 2*2 에서 2 이다. 앞에 2는 2진수를 뜻하고 뒤에 2가 가수부니까.
거기다가 127을 더한다. 이유는 음/양을 구분해야 하는데
8비트 전부 1을 써 넣으면 11111111 = 255 이기 때문에 중간값인 127을 넣는 것이다.
즉 127은 0을 뜻한다. 127+2 하니까 2가 되고 만약 127을 보다 낮은 값이면 음수란 거다.
지수부가 음수란 뜻이쥥... -> 점(.) 찍는 곳이 좌측이 아니라 우측으로 간다는 소리.
double형은 1023을 더한다.
가수부에 소수점 자리가 저장된다.
01101이 저장되겠지. 0.625 는 깔끔하지만 2를 계속 곱해도 안끝나는 녀석이 생기게 나름이다.
그래서 실수는 오차가 난다.(결론)
2011년 2월 24일 목요일
피드 구독하기:
댓글 (Atom)
UPBIT is a South Korean company, and people died of suicide cause of coin investment.
UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...
-
XE(제로보드) 내 게시판의 첨부용량 변경 ㅁ 개요 ↑ XE 구축시 초기 첨부파일 용량은 2M로 제한되어 있음에 데이터 자료실을 만들기 위해 용량을 명령어를 이용하여 추가 혹은 감소 시키도록 하고자 한다. ㅁ 구현 ↑ 처음 ...
-
일단 ssh 프로그램으로 apm 셋팅을 하려고 했으나 apt-get이 계속 파일 위치를 잡지 못했다. (404 not found....) 그래서 구글링 결과 apt의 리스트 변수 목록을 제거하고 새로 업데이트 하는 명령어를 찾음 :)...
-
□ native modifier 는 자바가 아닌 다른 언어로 작성된 코드를 자바에서 사용하기 위한 것 □ transient modifier 는 객체가 직렬 화되는 과정에서 해당 필드가 저장되지 않아야 한다는 것을 알리기 위해 사용 ...
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.