文字にはビットまたはバイトがいくつありますか?[閉まっている]


94

「文字」ごとにビットまたはバイトはいくつありますか?


1
あなたの質問とタイトルは異なるものを求めます。とにかく、わかりません。詳しく説明していただけますか?
galymzhan

はい、それについてもわかりませんでした。しかし、バイトは彼のタイトルとより一貫しています。1ビットの文字数はあまり意味がありませんが、1文字のビット数は意味があります。ただし、前述のように、コンテキストが必要です。
Skurmedel、2011年

4
@Skurmedel:どのように考えていますか?タイトルは「ビット」も言いました。
コーディグレイ

@Cody Grey:編集した答えを見てください。彼のタグにはバイトと書かれているので、タイプミスだと思いました。私は間違っているかもしれません。
Skurmedel、2011年

@Skurmedel:わかりません...質問への回答を投稿していません。そして、はい、以前はタグに気づきませんでした。しかし、私はまだ2/3が1/3より良いマッチであると考える傾向があります。
コーディグレイ

回答:


195

文字とは何か、それがどのエンコーディングにあるかによって異なります。

  • 8ビットASCIIエンコーディングのASCII文字は8ビット(1バイト)ですが、7ビットに収まる場合があります。

  • ISO-8859-1エンコーディングのISO-8895-1文字は8ビット(1バイト)です。

  • UTF-8エンコーディングのUnicode文字は、8ビット(1バイト)〜32ビット(4バイト)です。

  • UTF-16エンコードのUnicode文字は16(2バイト)から32ビット(4バイト)の間ですが、一般的な文字のほとんどは16ビットを使用します。これは、Windowsで内部的に使用されるエンコードです。

  • UTF-32エンコーディングのUnicode文字は常に32ビット(4バイト)です。

  • UTF-8のASCII文字は8ビット(1バイト)で、UTF-16-16ビットです。

  • ISO-8895-1(0xA0-0xFF)の追加(非ASCII)文字は、UTF-8およびUTF-16で16ビットを使用します。

つまり、ビットには0.03125から0.125の文字があることになります。


この回答は、ソケット、エンコーディング、テキストなどを処理するときに非常に役立ちます。
マリオMeyrelles

17

1バイトは8ビットです(通常、Windowsでは)。

ただし、文字を扱う場合は、文字セット/エンコーディングに依存します。Unicode文字は2バイトまたは4バイトになる可能性があるため、16ビットまたは32ビットになりますが、Windows-1252が誤ってANSIと呼ばれることもあるのは、1バイトだけなので8ビットです。

Windowsのアジアバージョンおよびその他のバージョンでは、システム全体が2バイトで実行されるため、文字は16ビットです。

編集済み

Matteoのコメントによれば、Windowsの最新バージョンはすべて、文字ごとに内部的に16ビットを使用しています。


一部のレガシーアプリはローカルコードページで1バイト文字を引き続き使用しますが、WindowsのすべてのNTバージョンは内部的に2バイト文字(UCS-2からNT4、Windows 2000以降のUTF-16、として保存wchar_t)で実行されます。新しいアプリケーションをすべて実行する必要があります。(Linuxでは、代わりに、通常システム全体でUTF-8が使用されるため、まったく別の話です)
Matteo Italia

@Matteo:Windowsでは、2バイトは必ずしもUnicodeと同じではないことに注意してください。参照
コーディグレイ

@Cody Grey:はい、通常、「2バイト」エンコーディングを読み取る場合、それはレガシーアジア言語のものであり、charUnicode文字列はwchar_tタイプを使用して格納される一方で、それらは複数として格納されます。ちなみに、NTが開始されたときはwchar_tサロゲートペアを回避するのに十分でしたが、UTF-16であるwchar_tため、文字列は可変長文字を持つことができるため、WindowsではUnicode文字は2から4バイト(1または2 wchar_t)。
Matteo Italia

@マッテオ:ええ、私はあなたに同意します。最初のコメントを編集する前に別の提案があったと思います。私が書いたのはそのときです。UTF-16 Unicode文字列は、Windowsのすべてのバージョンで内部的に使用されるようになりました。
コーディグレイ

@Cody Grey:コメントを少し編集しすぎると混乱を招きます:)
Matteo Italia
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.