CodeBlanks Logo Icon CodeBlanks

ASCII ve UTF-8

  • C kursu
  • İleri seviye
  • Ders 61/83
  • 5 dk

ASCII ve UTF-8 arasındaki farkı öğrenirsin.

ASCII ve UTF-8

ASCII 0-127 arası 7 bitlik bir tablodur; her harf tek bayttır. UTF-8, Unicode'un değişken uzunluklu kodlamasıdır: ASCII karakterler tek bayt, Latin dışı karakterler 2-4 bayt olur.

C'de char bir bayttır ve strlen bayt sayar; bu yüzden strlen("Merhaba") 7 dönerken strlen("çağ") 5 döner ('ç' ve 'ğ' ikişer bayttır).'A' harfının ASCII değeri 65'tir. Bayt ile karakter sayısı arasındaki fark UTF-8'in temelidir.

Bayt saymak

'A' karakterinin ASCII değerini yazdırmak için printf("%d", 'A'); yazarsın; bu 65 basar. Bir dizenin bayt sayısını strlen verir.

Örnek: strlen("Merhaba") 7 döner; 'M', 'e', 'r', 'h', 'a', 'b', 'a' yedi bayttır. ASCII aralığındaki dize için bayt ve karakter sayısı aynıdır. Bu bilgi, UTF-8 işlemenin temelidir: önce bayt sayısını öğrenir, sonra karakterleri çözersin.

Uygulama ASCII değer ve bayt sayısı

printf("ASCII: %d\n", 'A'); ile 'A' karakterinin ASCII değerini yazdır. printf("bayt: %zu\n", strlen("Merhaba")); ile dizenin bayt sayısını yazdır. <string.h> başlığını unutma.

Başlangıç kodu

main.c
#include <stdio.h>
#include <string.h>

// 'A' harfinin ASCII değerini %d ile yazdır
// "Merhaba" dizesinin bayt sayısını strlen ile yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <string.h>

int main(void) {
    printf("ASCII: %d\n", 'A');
    printf("bayt: %zu\n", strlen("Merhaba"));
    return 0;
}

Beklenen çıktı

ASCII: 65
bayt: 7

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 UTF-8'de 'ü' harfi kaç bayttır?

  • 2 Doğru cevap
  • 1
  • 3
  • 4

Açıklama: 'ü' Latin dışı bir harf olduğu için UTF-8'de 2 bayttır.

2 Dize boyunu bul

Soru
int n = strlen("____");
Cevap
int n = strlen("Merhaba");

Açıklama: strlen("Merhaba") 7 döner.

3 Kavramları eşle

Kavram Anlamı
ASCII 7 bit 0-127
UTF-8 Değişken uzunluk
char Tek bayt
strlen Bayt sayar

İleri seviye bölümündeki tüm dersler