Berapa banyak bit atau byte yang ada per "karakter"?
Berapa banyak bit atau byte yang ada per "karakter"?
Jawaban:
Itu tergantung apa karakter dan pengkodeannya:
Karakter ASCII dalam pengkodean ASCII 8-bit adalah 8 bit (1 byte), meskipun dapat ditampung dalam 7 bit.
Karakter ISO-8895-1 dalam pengkodean ISO-8859-1 adalah 8 bit (1 byte).
Karakter Unicode dalam pengkodean UTF-8 adalah antara 8 bit (1 byte) dan 32 bit (4 byte).
Karakter Unicode dalam pengkodean UTF-16 adalah antara 16 (2 byte) dan 32 bit (4 byte), meskipun sebagian besar karakter umum mengambil 16 bit. Ini adalah pengkodean yang digunakan oleh Windows secara internal.
Karakter Unicode dalam pengkodean UTF-32 selalu 32 bit (4 byte).
Karakter ASCII dalam UTF-8 adalah 8 bit (1 byte), dan dalam UTF-16 - 16 bit.
Karakter tambahan (non-ASCII) dalam ISO-8895-1 (0xA0-0xFF) akan membutuhkan 16 bit dalam UTF-8 dan UTF-16.
Itu berarti ada antara 0,03125 dan 0,125 karakter dalam satu bit.
Ada 8 bit dalam satu byte (biasanya di Windows).
Namun, jika Anda berurusan dengan karakter, itu akan tergantung pada charset / encoding. Karakter unicode bisa 2 atau 4 byte, jadi itu akan menjadi 16 atau 32 bit, sedangkan Windows-1252 kadang kadang salah disebut ANSI hanya 1 byte jadi 8 bit.
Di Windows versi Asia dan beberapa lainnya, seluruh sistem berjalan dalam byte ganda, jadi karakternya adalah 16 bit.
DIEDIT
Menurut komentar Matteo, semua versi Windows kontemporer menggunakan 16-bit secara internal per karakter.
wchar_t
), tidak hanya versi Asia, dan harus melakukan semua aplikasi yang lebih baru. (Di Linux, sebaliknya, ini adalah cerita yang sama sekali berbeda karena biasanya UTF-8 digunakan di seluruh sistem)
char
, sementara string Unicode disimpan menggunakan wchar_t
tipe. Ngomong-ngomong, ketika NT dimulai, wchar_t
sudah cukup untuk menghindari pasangan pengganti, tetapi sekarang wchar_t
string UTF-16 itu dapat memiliki karakter dengan panjang variabel, jadi pada Windows, karakter Unicode dapat mengambil dari 2 hingga 4 byte (1 atau 2 wchar_t
).
:)