자바 - 데이터 유형 인코딩 (ASCII, 유니 코드와 UTF-8)

기계 하드 디스크 하드웨어 아키텍처 (이해) https://diy.pconline.com.cn/cpu/study_cpu/1009/2215404_all.html

 

데이터 기억 부

1.bit (비트)

https://www.bilibili.com/video/av55918101

하드 디스크에서 시스템 데이터는 하드 디스크를 기계적으로, 예를 들면, 자성 재료로 제조한다. 이 극 N \ S 두 개의 상태를 나타낼 수있다. 이 0/1로 볼 수있다. 이것은 착신 컴퓨터의 최소 기억 단위 인 비트 .

2.Byte (바이트)

많은 소형 자석이있는 디스크는 0/1 많은 나타낼 수 있습니다. 그리고 0/1은 표현하기 위해 진수를 .

그냥보고 진수 거의 가치. 지난 세기의 60 년대, 미국은 문자의 인코딩 세트 개발 된 영어 문자 사이의 관계를 균일하게 규정했다. 이 호출된다 아스키 여전히 사용, 코드입니다.

아스키 코드 인코딩은 128 자 총을 제공합니다. 공간 (스페이스)은 대문자 A는 65 (01000001) 32 (00100000)이다. 128 개 심볼만을 취 (32 개 제어 심볼 포함한 인쇄 할 수 없음) 의 바이트 이면 7 최전방 균일 한 소정의 제로.

ASCII 코드 . 1 바이트 = '비트. 8 , 및 나중에 또한 바이트 여덟 기본 같다.

 

둘째, 코딩

1. 문자

문자 저장 부, 오히려 수화 없습니다. 이것에 의해 이끌어 코딩 코드 테이블을 문제.

사용하여 128 개 문자와 영어  아스키  코드 표가 충분하지만, 다른 언어를 표현하기 위해, 128 개 기호는 충분하지 않습니다.

중국어 (간체) 공통 코드 테이블은 GB2312은 최대 256 X 256 = 65536 개 문자를 나타낼 수 있습니다 이론적으로, 그래서 두 바이트는 문자를 나타냅니다.

2.Unicode 코드 표

이진수 다른 상징으로 해석 될 수와 세계의 많은 국가들은 다양한 스톱워치가 있습니다. 따라서, 텍스트 파일을 열기 위해, 당신은 코드 테이블의 그렇지 않으면 잘못된 해석, 그것에 대응하는 코드 테이블을 알고 있어야합니다, 왜곡이있을 것이다.

코드가 있다면, 세상의 모든 기호가 포함되어 상상해보십시오. 각각의 기호는 쓰레기 문제가 사라집니다, 고유 코드가 부여됩니다. 이다 유니 코드 , 코드 테이블의 모든 기호.

유니 코드는  이제 만 개 이상의 문자를 수용 할 수 있도록 확장 할 수 있습니다. 각 심볼을 인코딩하는 것은 다르다. 영어 대문자을위한 U + 0041로 A는 U + 4E25 문자 연의 (특정 기호의 대응 테이블을 조회 할 수 있습니다 나타냅니다  Unicode.org을 , 또는 특수  문자 대응 테이블 ).

단일 부호화 방법에 대응하는 종래의 코드 테이블. ASCII  8 비트 문자에 GB2312 16 비트 문자입니다. 으로  유니 사망 후 작고 큰 문자의 캐릭터 진값의 전방 이진 값 후방.

문자를 인코딩 비트의 모든 긴 경우, 그 문자 낭비 공간을 많이 일으키는 제로 패딩 등장의 번호를 전달합니다. 그래서 유니 코드 테이블을 사용 후, 당신은 코딩 가고 싶어 얼마나 많은 컴퓨터 문제입니다.

3.UTF-8 인코딩합니다 ( RFC 3629 에 정의)

먼저 UTF-8은 A는 유니 코드 구현의 하나. 다른 구현 또한 UTF-16 (( UCS-2 ) 문자 두 바이트 또는 4 바이트)과 UTF-32 (( UCS-. 4 ) 문자의 4 바이트로 표현된다)

UTF-8 의 가장 큰 특징은 가변 길이 인코딩 것입니다. 이 바이트 길이가 기호에 따라 변화하는 심볼 1 4 바이트를 사용한다.

UTF-8의 인코딩 규칙은 두 간단하다 :

  • 단일 바이트 기호, 바이트 0의 집합, 유니 코드 심볼의이면 (7). 따라서, 영어 알파벳을 위해, UTF-8 인코딩 및 ASCII 코드는 동일합니다.
  • N의 경우 (N> 1) 바이트의 서명, 제 n 비트의 첫 번째 바이트가 1로 설정되고, 제 n + 1 비트가 0으로 설정되고, 후방의 제 2 바이트에 균일하게 열을 설정. 나머지 비트들은 유니 코드 심볼 모두를 언급하지.

다음 표는 인코딩 규칙, 문자 X 사용 가능한 인코딩 비트를 나타냅니다을 요약 한 것입니다.

유니 심볼 범위 | UTF-8 인코딩 
(16 진수) | (바이너리) 
-------------------- + ---------- ----------------------------------- 
0000 0000-0000 007F | 0xxxxxxx와 
0000 0080-0000 07FF | 110xxxxx에 10xxxxxx에 
0800-0000 FFFF 0000 | 1110xxxx와 10xxxxxx에 10xxxxxx에 
0001 0000-0010 FFFF | 11110xxx 10xxxxxx에 10xxxxxx에 10xxxxxx에

한자 연, 예를 들어

  • 얀 유니 코드 4E25입니다 (100,111,000,100,101)
  • 표에 따라, 4E25는 세 번째 행의 범위 (0000 0800-0000 FFFF) 때문에 엄격 UTF-8 인코딩, 즉 3 바이트, 10xxxxxx에 형식 1110xxxx와 10xxxxxx에 요구한다.
  • 엄격한 마지막 비트의 시작 순서 X는 뒤에서 앞으로, 여분의 비트 0에서 형식을 입력합니다. 따라서 엄격한 UTF-8 인코딩을 1,110,010,010,111,000 10,100,101 획득이를 E4B8A5 진수로 변환된다.

 

세, 자바 기본 데이터 유형

부울 형 스토리지 소개

자바 가상 머신은 부울 INT에 매핑됩니다, 0은 거짓 표현, 사실 나타 내기 위해 1을 사용합니다. 
즉, 부울 타입은 1 개 비트를 차지한다. https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.3.4

부동 소수점 범위에 대해

https://blog.csdn.net/shichimiyasatone/article/details/85276316

자동 입력 상자에 대해

https://www.cnblogs.com/dolphin0520/p/3780005.html

유형 변환에 대해

  • 계산에서 상이한 정밀도의 수는 자바 피연산자 낮은 정확도 정밀도 피연산자로 변환 될 때, 계산 하였다. 계산 결과 고정밀 값이다.
  • 경우 가변형의 값이 낮은 정밀도 높은 정밀도로 나타낼 수 있는지 여부를 고정밀 낮은 정확도 값으로 전환 가치를 결정한다.
  • 정밀도가 낮은 자동 유형 변환의 정밀도 ((바이트, 짧은 문자) - 값 int - 긴 - 플로트 - 더블)
  • 정밀 캐스트의 낮은 정확도

 


https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.1

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

http://www.ruanyifeng.com/blog/2014/12/unicode.html

추천

출처www.cnblogs.com/jhxxb/p/11154925.html