본문 바로가기

JAVA를 잡아라!/Java

2진수, 8진수, 16진수

[변수에서 값의 구현 원리]

è1Byte à 8Bit 로 구성
è1Bit0 , 1 로 표현
è2Bit표현할수 있는 경우의 수
 
00
  01
  10
  11     
22 가지, 4가지 경우의 수 발생

è8Bit 의 경우
   
00000000 ~ 11111111 까지 이므로 28가지, 65536가지의 수 발생
   
int   M  = 65;  // 01000001 (실제로는 2진수로 변수에 담긴다.)
è진법(2진수, 8진수, 16진수) 

    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)    -222진수로 표현 하시오.

힌트:  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 )