[변수에서 값의 구현 원리]
è1Byte à 8Bit 로 구성
è1Bit는 0 , 1 로 표현
è2Bit로 표현할수 있는 경우의 수
00
01
10
11 22 가지, 즉 4가지 경우의 수 발생
00000000 ~ 11111111 까지 이므로 28가지, 즉 65536가지의 수 발생
int M = 65; // 01000001 (실제로는 2진수로 변수에 담긴다.)
0 0 0 0 1 0 1 0 (10)
MSB(Most Signed Bit) 최상위 부호비트
0: 양수
1: 음수 (단, sign형 기억장소 일때)
[진법 및 sign, unsigned 형 변수의 완벽해부]
*********** 2진수 ************(1Byte)
0 0 0 0 1 0 1 0 (10)
MSB(Most Sign Bit) 최상위 부호비트
0: 양수 : 00001010 (+10)
1: 음수 : 11110101 (-11)
10진수 변환시 [1방법]
= 0*20 + 1*21 + 0*22 + 1*23 + 0*24+ 0*25 + 0*26
결과: 10
마지막 27자리는 MSB이므로 계산의 대상에서 제외된다.
[2 방법]
= 0*1 + 1*2 + 0*4 + 1*8 + 0*16 + 0*32 + 0*64
[3 방법]
= 1*2 + 1* 8
[4 방법]
= 2+8
[16진수]
10 11 12 13 14 15 (10진수로 볼때)
0 1 2 3 4 5 6 7 8 9 A B C D E F
2진수 네자리는 16진수 한자리 (16진수 1자리 à 2진수 4자리)
2진수 세자리는 8진수 한자리( 8진수 1자리 à 2진수 3자리)
0 0 0 1 0 0 1 1 ( 19 ) à 0x13 (16진수)
0 0 0 1 0 0 1 1 ( 19 ) à 023 ( 8진수)
[진법간 상호 변환]
0x23 à 0010 0011 0x79 à 0111 1001
035 à 00 011 101 036 à 00 011 110
[컴퓨터의 음수 표현]
à 2의 보수법 ( 2’s Complement )
00001010 ( +10 )
11110101 ( 1의 보수법으로 변환 )
11110110 ( 위의 수에 1을 더한다) ( -10 )
MSB
1 1 1 0 0 1 0 1 : -( 16 + 8 + 2 + 1 ) 결과: -27
1 1 0 1 0 1 0 1 : -( 32 + 8 + 2 + 1 ) 결과: -43
문 1) -22를 2진수로 표현 하시오.
힌트: 1 과 0 을 바꾸어서 21 을 만든다.
1 1 1 0 1 0 1 0 : - (16 + 4 + 1 + 1)
[ 1Byte 기억장소가 기억할수 있는 값의 범위 ]
01111111 (127)
:
00000010 ( 2 )
00000001 ( 1 )
00000000 ( 0 )
11111111 ( -1 )
11111110 ( -2 )
11111101 ( -3 )
11111100 ( -4 )
:
10000000 ( -128 )
2^8가지 à 256가지
양수 128 가지( 0 ~ 127 )
음수 128 가지( -1 ~ -128 )
[출처] 2진수, 8진수, 16진수 (오늘도 눈풀린당신...주무세요!!) |작성자 녹차중독