일반적인 문제 char 유형은 몇 바이트를 차지합니까?

char 유형은 몇 바이트를 차지합니까?

Mar 10, 2023 pm 03:54 PM
문자 유형

char 유형은 C 또는 C++에서는 1바이트, Java에서는 2바이트를 차지합니다. char은 C나 C++에서 문자 변수를 정의하는 데 사용되며, char 데이터형은 정수형으로 1바이트만 차지한다. Java에서 char 유형은 Java 컴파일러가 기본적으로 유니코드 인코딩을 사용하므로 2바이트를 차지하므로 2바이트(16비트)가 모든 문자를 나타낼 수 있습니다.

char 유형은 몇 바이트를 차지합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

Baidu에서 "char이 차지하는 바이트 수"를 검색한 결과 다음과 같은 답변을 얻었습니다.

char 유형은 몇 바이트를 차지합니까?

Char는 C 또는 C++에서 문자 변수를 정의하는 데 사용되며 정수 유형이며 하나만 차지합니다. byte. , 값 범위는 -128 ~ +127(-27 ~ 27-1)입니다.

char 형식은 1바이트, 즉 8비트를 차지합니다. 저장할 수 있는 양의 정수는 0111 1111, 즉 127입니다.

분명히 이것은 우리가 원하는 결과가 아니기 때문에 "Java에서 char은 몇 바이트를 차지합니까?"라고 계속 검색했습니다.

char 유형은 몇 바이트를 차지합니까?

Java에서 Char는 문자를 저장하는 데 사용되는 데이터 유형으로 2바이트를 차지합니다. , 유니코드 인코딩을 사용하는 경우 인코딩의 처음 128바이트는 ASCII와 호환되지만 일부 문자는 표현하는 데 두 개의 문자가 필요합니다.

C, C++ 및 Java의 문자가 차지하는 바이트 수가 다른 이유는 무엇입니까?

일부 문자를 표현하는 데 두 개의 문자가 필요하다는 것은 무엇을 의미하나요?

Coding

이 문제를 논의하기 전에 먼저 몇 가지 지식 포인트를 대중화하겠습니다.

우선, 우리 모두는 컴퓨터에 저장된 정보가 이진수로 표현된다는 것을 알고 있는데, 우리 인간이 사용하는 한자나 영어를 어떻게 컴퓨터에 저장하게 할 수 있을까요?

예를 들어 'a'를 이진수로 변환하여 컴퓨터에 저장하는 방법을 인코딩이라고 하고, 컴퓨터에 저장된 이진수를 분석하여 표시하는 것을

디코딩

이라고 합니다.

문자 집합문자(Character)는 각종 국가 문자, 구두점, 그래픽 기호, 숫자 등을 포함한 다양한 문자 및 기호를 총칭하는 용어입니다. 문자 세트(Character set)는 여러 문자 세트의 집합이며, 각 문자 세트에는 서로 다른 문자 수가 포함됩니다. 일반적인 문자 세트 이름: ASCII 문자 세트, GB2312 문자 세트, BIG5 문자 세트 GB18030 문자 집합, 유니코드 문자 집합 등 바이두 백과사전에 나온 설명입니다. 어쨌든 문자 세트는 문자 집합의 종류가 다양하며, 문자 세트에 포함된 문자 수도 다릅니다. 컴퓨터가 다양한 문자 집합의 텍스트를 정확하게 처리하기 위해서는 컴퓨터가 다양한 텍스트를 인식하고 저장할 수 있도록 문자 인코딩이 필요합니다.

unicode

그 이름은 유니코드(Unicode), 유니버셜 코드(Universal Code)라고도 불리며, 기호 수는 지속적으로 증가하여 100만개를 넘어섰습니다.

유니코드가 만들어지기 전에는 수백 가지의 인코딩 시스템이 있었습니다. 어떤 인코딩도 충분한 문자를 포함할 수 없습니다. 이름에서 알 수 있듯이 모든 기호에 대한 인코딩입니다. 각 기호에는 고유한 인코딩이 부여되므로 다른 인코딩으로 인해 발생하는 잘못된 코드 문제가 사라집니다.

대부분의 컴퓨터는 모든 대문자와 소문자, 숫자, 구두점 및 제어 문자를 나타내는 7비트 인코딩 방식인 ASCII(American Standard Code for Information Interchange)를 사용합니다. 유니코드에는 ASCII 코드가 포함되어 있으며 'u0000' ~ 'u007F'는 모두 128개의 ACSII 문자에 해당합니다.

힘이 있는 자만이 기준을 세울 수 있다는 생각을 지울 수 없습니다. 유니코드는 단지 기호 세트일 뿐이며 기호의 이진 코드만 지정합니다. 문자와 숫자 간의 매핑만 제공할 뿐 이 이진 코드를 저장하는 방법은 지정하지 않습니다. 우리는 영문자의 갯수가 매우 적어서 1바이트로 표현할 수 있다는 것을 알고 있지만, 유니코드의 중국어 기호의 갯수는 매우 커서 1바이트를 전혀 사용할 수 없습니다. 그 결과 나중에 UTF-8, UTF-16 등 유니코드 문자 저장을 위한 다양한 구현 방법이 등장했습니다. UTF-8은 인터넷에서 가장 널리 사용되는 유니코드 구현입니다.

내부 코드와 외부 코드

우리는 종종 Java에서 char이 여러 바이트를 차지한다고 말하는데, Java의 내부 코드에서는 char이어야 합니다.

내부 코드는 Java가 실행될 때 메모리에 있는 문자 및 문자열의 인코딩 방법을 말하며, 외부 코드는 직렬화 기술과 같이 프로그램이 외부 세계와 상호 작용할 때 외부에서 사용되는 문자 인코딩입니다. 외부 코드는 다음과 같이 이해될 수 있습니다. 내부 코드가 아닌 한 외부 코드입니다. 소스코드 컴파일로 생성된 객체코드 파일(실행파일 또는 클래스파일)의 인코딩 방식은 외래코드에 속한다는 점에 유의하시기 바랍니다. JVM의 내부 코드는 UTF16을 사용합니다. UTF-16에서 16은 16비트의 최소 단위를 의미합니다. 즉, 2바이트가 1단위입니다. 초기에는 UTF16이 고정 길이 2바이트 인코딩을 사용하여 인코딩되었습니다. 2바이트는 65536개의 기호를 나타낼 수 있으며(실제로는 이보다 적을 수도 있음) 이는 당시 유니코드의 모든 문자를 표현하기에 충분했습니다. 그러나 유니코드의 문자 수가 증가함에 따라 UTF16에서는 2바이트 또는 4바이트를 사용하여 인코딩을 완료합니다. 이 상황을 처리하기 위해 Java는 향후 호환성 요구 사항을 고려하여 char 쌍을 사용하여 4바이트가 필요한 문자를 나타냅니다. 따라서 Java의 char은 2바이트를 차지하지만 일부 문자는 이를 표현하기 위해 2개의 문자가 필요합니다. 이는 일부 문자를 표현하기 위해 두 개의 문자가 필요한 이유를 설명합니다.

추가: Java의 클래스 파일은 UTF8을 사용하여 문자를 저장합니다. 즉, 클래스의 문자는 1~6바이트를 차지합니다. Java 직렬화 중에 문자도 UTF8로 인코딩되며 1~6자를 차지합니다.

length()

그럼 또 다른 질문이 있습니다. Java에서 문자의 String.length()는 무엇입니까?

이전 지식 포인트를 읽은 후 더 이상 입을 열 수 없으며 답이 있습니다. is 1... ...데모를 작성하고 살펴보십시오. 호랑이의 해에 Tiger를 사용하여 테스트하면 TigerUTF는 해당 유니코드 인코딩을 나타냅니다.

         String tiger = "?";
         String tigerUTF = "\uD83D\uDC05";
         System.out.println(tigerUTF);
         System.out.println(tiger.length()); 
         System.out.println(tiger.codePointCount(0,tiger.length()));
로그인 후 복사

char 유형은 몇 바이트를 차지합니까?

String.length()得到的结果为2,表示的是stirng的char数组占UTF-16格式的2个代码单元(即4个字节),而不是有多少个字符。 当然我们想要获取多少个字符,可以使用codePointCount 메소드를 호출하여 얻을 수 있습니다.

관련 지식이 더 궁금하시다면 FAQ 칼럼을 방문해 주세요!

위 내용은 char 유형은 몇 바이트를 차지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Deepseek 웹 버전 공식 입구 Deepseek 웹 버전 공식 입구 Mar 12, 2025 pm 01:42 PM

국내 AI Dark Horse Deepseek은 글로벌 AI 산업에 충격을 주면서 강력하게 증가했습니다! 1 년 반 동안 단지 설립 된이 중국 인공 지능 회사는 무료 및 오픈 소스 모형 인 DeepSeek-V3 및 DeepSeek-R1에 대해 글로벌 사용자로부터 광범위한 칭찬을 받았습니다. DeepSeek-R1은 이제 OpenAIO1의 공식 버전과 비교할 수있는 성능으로 완전히 출시되었습니다! 웹 페이지, 앱 및 API 인터페이스에서 강력한 기능을 경험할 수 있습니다. 다운로드 방법 : iOS 및 Android 시스템을 지원하면 사용자가 App Store를 통해 다운로드 할 수 있습니다. Deepseek 웹 버전 공식 입구 : HT

심층적 인 검색 DeepSeek 공식 웹 사이트 입학 심층적 인 검색 DeepSeek 공식 웹 사이트 입학 Mar 12, 2025 pm 01:33 PM

2025 년 초, 국내 AI "Deepseek"은 놀라운 데뷔를했습니다! 이 무료 및 오픈 소스 AI 모델은 OpenAI의 O1의 공식 버전과 비교할 수있는 성능을 가지고 있으며 웹 측, 앱 및 API에서 완전히 출시되어 iOS, Android 및 웹 버전의 다중 터미널 사용을 지원합니다. DeepSeek 공식 웹 사이트 및 사용 지침의 심도있는 검색 : 공식 웹 사이트 주소 : https://www.deepseek.com/using 웹 버전 : 위의 링크를 클릭하여 DeepSeek 공식 웹 사이트를 입력하십시오. 홈페이지에서 "대화 시작"버튼을 클릭하십시오. 먼저 사용하려면 휴대폰 확인 코드와 함께 로그인해야합니다. 로그인 한 후 대화 인터페이스를 입력 할 수 있습니다. DeepSeek은 강력하고 코드를 작성하고 파일을 읽고 코드를 만들 수 있습니다.

DeepSeek의 바쁜 서버 문제를 해결하는 방법 DeepSeek의 바쁜 서버 문제를 해결하는 방법 Mar 12, 2025 pm 01:39 PM

DeepSeek : 서버와 혼잡 한 인기있는 AI를 처리하는 방법은 무엇입니까? 2025 년 핫 AI로서 DeepSeek은 무료이며 오픈 소스이며 OpenAIO1의 공식 버전과 비교할 수있는 성능을 가지고 있으며, 이는 인기를 보여줍니다. 그러나 높은 동시성은 서버 바쁜 문제를 가져옵니다. 이 기사는 이유를 분석하고 대처 전략을 제공합니다. DeepSeek 웹 버전 입구 : https://www.deepseek.com/deepseek 서버 바쁜 이유 : 높은 동시 액세스 : DeepSeek의 무료 및 강력한 기능은 동시에 많은 사용자를 유치하여 과도한 서버로드를 초래합니다. 사이버 공격 : DeepSeek은 미국 금융 산업에 영향을 미친다 고보고되었습니다.