Uknow's Lab.

ASCII (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)

아스키 코드 (ASKII)란

7개의 비트를 사용하여 2^7 = 128,000(0x00)부터 127(0x7F)까지 총 128개의 문자를 표현할 수 있다.
(8개 비트중 1개는 오류 검출용 패리티비트로 사용한다.)

미국에서 만든 표준 부호라는 점과 128개의 표현의 제한범위 때문에 오직 알파벳과 각종 연산 기호만 표현 가능하며, 한글, 한자, 히라가나 등은 유니코드를 이용하여 표현한다.

문자를 표시할 때, 영어의 경우 1글자당 1바이트를 사용하지만, 타 언어는 1글자당 2바이트를 사용하는 것 역시 영어는 아스키코드를 사용하지만, 타 언어는 유니코드를 사용한다는 점 때문이다.


아스키 코드를 사용한 출력

A의 아스키 코드 값은 65이다. 그럼 만약 65라는 숫자를 char형으로 출력해주면 어떤 결과가 나올까? 
public class Main {     
	public static void main(String[] args)     {      
		System.out.println((char)65);    
	}
}

결과 :

65를 char형으로 출력할 경우 A가 출력된다.

반대로 65를 int형으로 출력하면 A가 나올까? 

 

public class Main {     
	public static void main(String[] args)     {
		System.out.println((int)'A');     
	}
}

결과 :

문자 A를 INT형으로 출력한 결과 역시 65로 출력이 된다.

그럼, A의 아스키코드 값보다 1만큼 큰 숫자인 B를 출력하려면, 그냥 A+1을 하면 될까? 

 

public class Main {     
	public static void main(String[] args)     {         
    		System.out.println((char)'A'+1);     
        } 
}

결과 :

아니다. 66이 출력된다.
'A' + 1 연산을 진행할 때, INT형으로 형 변환이 일어난다.

그렇다면, 'A'+1(=66)을 괄호로 묶어 char형으로 출력하면? 

 

public class Main {
	public static void main(String[] args)
	{
		System.out.println((char)('A'+1));
	}
}

결과 :

B가 출력된다.


아스키 코드와 반복문을 사용한 알파벳 연속 출력

그렇다면 반복문과 아스키코드를 사용하여 알파벳을 연속으로 출력해보자

public class Main {     
	public static void main(String[] args)     {         
    	for(int i = 0; i<30; i++)             
	    	System.out.print((char)('A'+i) + " ");     
    } 
}

 

A부터 시작하여 A+1값인 B, A+2값인 C가 출력된다.

A+25인 Z까지 출력되고,

A+26인 91부터는 해당되는 아스키코드의 값인 특수문자가 출력이 되는걸 볼 수 있다.


마치며

예전 네이버 블로그를 사용할 때에 포스팅 했던 글이다.

블로그를 벨로그로 옮기고, 또 다시 티스토리로 옮겼다.

네이버는 먼가 구글링을 통해 유입이 잘 안될것 같고,
벨로그는 댓글이 너무 안달릴 뿐더러, 광고를 달기에도 애매하다는 말을 들었기 때문이다 ㅠㅠ....

노션 블로그도 잠깐 생각했다가, 댓글과 유입이 없을테니 그냥 딱 노트 및 프로젝트 관리 용으로 납뒀다.

 

다행이 네이버와 벨로그 두 블로그 모두 글이 몇개 없기도 하고,

일단 네이버와 벨로그에 썼던 글들을 티스토리로 통합하는 방향으로 가고 있다.

 

오랜만에 예전에 쓴 글을 보니 꽤 새롭다.

 

네이버 블로그에 이 글을 썼을 때는

군대 갔다 온 직후 머리속이 횡 날아가버린 상태였어서 이것저것 신기해하며 알아봤던 기억이 남는다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.