Farklar

Bu sayfanın seçili sürümü ile mevcut sürümü arasındaki farkları gösterir.

Karşılaştırma görünümüne bağlantı

İki taraf da önceki sürüm Önceki sürüm
Sonraki sürüm
Önceki sürüm
tr:cs:lang:cpp:types:ascii [2026/04/12 13:26] ulascemhtr:cs:lang:cpp:types:ascii [2026/04/12 13:36] (mevcut) ulascemh
Satır 3: Satır 3:
 {{wp:tr>ASCII}} {{wp:tr>ASCII}}
  
-C++ programlamada karakterler bellekte doğrudan metin olarak değil, sayısal değerler olarak tutulur. Bu sayısal değerlerin karakterlerle nasıl eşleştiğini belirleyen evrensel standarda ASCII((American Standard Code for Information Interchange)) denir.+C++ programlamada karakterler bellekte doğrudan metin olarak değil, sayısal değerler olarak tutulur. Bu sayısal değerlerin karakterlerle nasıl eşleştiğini belirleyen evrensel standarda ASCII denir.
  
 C++'da temel karakter veri tipi olan [[tr:cs:lang:cpp:types:char|char]], özünde 8 bitlik bir tam sayı tipidir. Genellikle arka planda ASCII tablosunu kullanır. C++'da temel karakter veri tipi olan [[tr:cs:lang:cpp:types:char|char]], özünde 8 bitlik bir tam sayı tipidir. Genellikle arka planda ASCII tablosunu kullanır.
Satır 9: Satır 9:
 Bir karaktere işlem yaptığımızda aslında onun ASCII değerine işlem yaparız. Bu durum bize //karakter aritmetiği// dediğimiz güçlü ve hızlı bir manipülasyon tekniklerinin kapısını açar. Bir karaktere işlem yaptığımızda aslında onun ASCII değerine işlem yaparız. Bu durum bize //karakter aritmetiği// dediğimiz güçlü ve hızlı bir manipülasyon tekniklerinin kapısını açar.
  
-<datatable responsive="true" scroll-y="200px"> +<datatable fixed-header='"header": true"headerOffset": 50 }' paging="false"> 
-Code Symbol Code Symbol Code Symbol Code Symbol +Kod Sembol Kod Sembol Kod Sembol Kod Sembol 
-0 | ''NUL (null)'' | 32 | ''(space)'' | 64 | ''@'' | 96 | ''`''+0 | ''NUL (null)'' | 32 | ''(space)'' | 64 | ''@'' | 96 | ''`''
-1 | ''SOH (start of header)'' | 33 | ''!'' | 65 | ''A'' | 97 | ''a'' |  +1 | ''SOH (start of header)'' | 33 | ''!'' | 65 | ''A'' | 97 | ''a'' |  
-2 | ''STX (start of text)'' | 34 | ''”'' | 66 | ''B'' | 98 | ''b'' |  +2 | ''STX (start of text)'' | 34 | ''”'' | 66 | ''B'' | 98 | ''b'' |  
-3 | ''ETX (end of text)'' | 35 | ''#'' | 67 | ''C'' | 99 | ''c'' |  +3 | ''ETX (end of text)'' | 35 | ''#'' | 67 | ''C'' | 99 | ''c'' |  
-4 | ''EOT (end of transmission)'' | 36 | ''$'' | 68 | ''D'' | 100 | ''d'' |  +4 | ''EOT (end of transmission)'' | 36 | ''$'' | 68 | ''D'' | 100 | ''d'' |  
-5 | ''ENQ (enquiry)'' | 37 | ''%'' | 69 | ''E'' | 101 | ''e'' |  +5 | ''ENQ (enquiry)'' | 37 | ''%'' | 69 | ''E'' | 101 | ''e'' |  
-6 | ''ACK (acknowledge)'' | 38 | ''&'' | 70 | ''F'' | 102 | ''f'' |  +6 | ''ACK (acknowledge)'' | 38 | ''&'' | 70 | ''F'' | 102 | ''f'' |  
-7 | ''BEL (bell)'' | 39 | ''’'' | 71 | ''G'' | 103 | ''g'' |  +7 | ''BEL (bell)'' | 39 | ''’'' | 71 | ''G'' | 103 | ''g'' |  
-8 | ''BS (backspace)'' | 40 | ''('' | 72 | ''H'' | 104 | ''h'' |  +8 | ''BS (backspace)'' | 40 | ''('' | 72 | ''H'' | 104 | ''h'' |  
-9 | ''HT (horizontal tab)'' | 41 | '')'' | 73 | ''I'' | 105 | ''i'' |  +9 | ''HT (horizontal tab)'' | 41 | '')'' | 73 | ''I'' | 105 | ''i'' |  
-10 | ''LF (line feed/new line)'' | 42 | ''*'' | 74 | ''J'' | 106 | ''j'' |  +10 | ''LF (line feed/new line)'' | 42 | ''*'' | 74 | ''J'' | 106 | ''j'' |  
-11 | ''VT (vertical tab)'' | 43 | ''+'' | 75 | ''K'' | 107 | ''k'' |  +11 | ''VT (vertical tab)'' | 43 | ''+'' | 75 | ''K'' | 107 | ''k'' |  
-12 | ''FF (form feed / new page)'' | 44 | '','' | 76 | ''L'' | 108 | ''l'' |  +12 | ''FF (form feed / new page)'' | 44 | '','' | 76 | ''L'' | 108 | ''l'' |  
-13 | ''CR (carriage return)'' | 45 | ''-'' | 77 | ''M'' | 109 | ''m'' |  +13 | ''CR (carriage return)'' | 45 | ''-'' | 77 | ''M'' | 109 | ''m'' |  
-14 | ''SO (shift out)'' | 46 | ''.'' | 78 | ''N'' | 110 | ''n'' |  +14 | ''SO (shift out)'' | 46 | ''.'' | 78 | ''N'' | 110 | ''n'' |  
-15 | ''SI (shift in)'' | 47 | ''/'' | 79 | ''O'' | 111 | ''o'' |  +15 | ''SI (shift in)'' | 47 | ''/'' | 79 | ''O'' | 111 | ''o'' |  
-16 | ''DLE (data link escape)'' | 48 | ''0'' | 80 | ''P'' | 112 | ''p'' |  +16 | ''DLE (data link escape)'' | 48 | ''0'' | 80 | ''P'' | 112 | ''p'' |  
-17 | ''DC1 (data control 1)'' | 49 | ''1'' | 81 | ''Q'' | 113 | ''q'' |  +17 | ''DC1 (data control 1)'' | 49 | ''1'' | 81 | ''Q'' | 113 | ''q'' |  
-18 | ''DC2 (data control 2)'' | 50 | ''2'' | 82 | ''R'' | 114 | ''r'' |  +18 | ''DC2 (data control 2)'' | 50 | ''2'' | 82 | ''R'' | 114 | ''r'' |  
-19 | ''DC3 (data control 3)'' | 51 | ''3'' | 83 | ''S'' | 115 | ''s'' |  +19 | ''DC3 (data control 3)'' | 51 | ''3'' | 83 | ''S'' | 115 | ''s'' |  
-20 | ''DC4 (data control 4)'' | 52 | ''4'' | 84 | ''T'' | 116 | ''t'' |  +20 | ''DC4 (data control 4)'' | 52 | ''4'' | 84 | ''T'' | 116 | ''t'' |  
-21 | ''NAK (negative acknowledge)'' | 53 | ''5'' | 85 | ''U'' | 117 | ''u'' |  +21 | ''NAK (negative acknowledge)'' | 53 | ''5'' | 85 | ''U'' | 117 | ''u'' |  
-22 | ''SYN (synchronous idle)'' | 54 | ''6'' | 86 | ''V'' | 118 | ''v'' |  +22 | ''SYN (synchronous idle)'' | 54 | ''6'' | 86 | ''V'' | 118 | ''v'' |  
-23 | ''ETB (end of transmission block)'' | 55 | ''7'' | 87 | ''W'' | 119 | ''w'' |  +23 | ''ETB (end of transmission block)'' | 55 | ''7'' | 87 | ''W'' | 119 | ''w'' |  
-24 | ''CAN (cancel)'' | 56 | ''8'' | 88 | ''X'' | 120 | ''x'' |  +24 | ''CAN (cancel)'' | 56 | ''8'' | 88 | ''X'' | 120 | ''x'' |  
-25 | ''EM (end of medium)'' | 57 | ''9'' | 89 | ''Y'' | 121 | ''y'' |  +25 | ''EM (end of medium)'' | 57 | ''9'' | 89 | ''Y'' | 121 | ''y'' |  
-26 | ''SUB (substitute)'' | 58 | '':'' | 90 | ''Z'' | 122 | ''z'' |  +26 | ''SUB (substitute)'' | 58 | '':'' | 90 | ''Z'' | 122 | ''z'' |  
-27 | ''ESC (escape)'' | 59 | '';'' | 91 | ''['' | 123 | ''{'' |   +27 | ''ESC (escape)'' | 59 | '';'' | 91 | ''['' | 123 | ''{'' |   
-28 | ''FS (file separator)'' | 60 | ''<'' | 92 | ''\'' | 124 | ''|'' |  +28 | ''FS (file separator)'' | 60 | ''<'' | 92 | ''\'' | 124 | ''|'' |  
-29 | ''GS (group separator)'' | 61 | ''='' | 93 | '']'' | 125 | ''}'' |  +29 | ''GS (group separator)'' | 61 | ''='' | 93 | '']'' | 125 | ''}'' |  
-30 | ''RS (record separator)'' | 62 | ''>'' | 94 | ''^'' | 126 | ''~'' |  +30 | ''RS (record separator)'' | 62 | ''>'' | 94 | ''^'' | 126 | ''~'' |  
-31 | ''US (unit separator)'' | 63 | ''?'' | 95 | ''_'' | 127 | ''DEL (delete)''+31 | ''US (unit separator)'' | 63 | ''?'' | 95 | ''_'' | 127 | ''DEL (delete)''
 </datatables> </datatables>
 +
 +===== Karakter Aritmetiği =====
 +
 +==== Karakterin ASCII Değerini Bulma ====
 +
 +<code cpp>
 +#include <iostream>
 +
 +int main() {
 +char harf = 'A';
 +
 +// Güvenli ve modern C++ dönüşümü (Casting)
 +int asciiDegeri = static_cast<int>(harf);
 +
 +std::cout << "Karakter: " << harf << "\n";
 +std::cout << "ASCII Degeri: " << asciiDegeri << "\n"; // Çıktı: 65
 +
 +return 0;
 +
 +
 +}
 +</code>
 +
 +==== Büyük Harf / Küçük Harf Dönüşümü (Karakter Aritmetiği) ====
 +
 +
 +Büyük harfler ile küçük harfler arasında ASCII tablosunda tam olarak 32 birim fark vardır. (Örn: 'a' = 97, 'A' = 65 -> 97 - 65 = 32). Bu kuralı kullanarak manuel büyük/küçük harf dönüşümü yapabiliriz.
 +
 +<code cpp>
 +#include <iostream>
 +
 +int main() {
 +char kucukHarf = 'g';
 +
 +// Küçük harften 32 çıkarırsak büyük harfi elde ederiz.
 +char buyukHarf = kucukHarf - 32; 
 +
 +std::cout << kucukHarf << " harfinin buyugu: " << buyukHarf << "\n"; 
 +// Çıktı: g harfinin buyugu: G
 +
 +return 0;
 +
 +
 +}
 +</code>
 +
 +Not: Modern C++ projelerinde bu işlemi manuel yapmak yerine ''<cctype>'' kütüphanesindeki ''std::toupper()'' ve ''std::tolower()'' fonksiyonlarını kullanmak en iyi pratiktir 
 +
 +==== Karakterin Rakam Olup Olmadığını Kontrol Etme ====
 +
 +Karakterin ASCII değerinin 48 ('0') ile 57 ('9') arasında olup olmadığını kontrol ederek matematiksel bir doğrulama yapabiliriz.
 +
 +<code cpp>
 +#include <iostream>
 +
 +bool rakamMi(char c) {
 +// '0' ile '9' ASCII aralığında mı diye bakıyoruz
 +return (c >= '0' && c <= '9');
 +}
 +
 +int main() {
 +char testKarakteri = '5';
 +if (rakamMi(testKarakteri)) {
 +std::cout << testKarakteri << " bir rakamdir.\n";
 +}
 +return 0;
 +}
 +</code>
  
 <wrap onlyprint>Bu belgedeki bilgiler [[tr:cs:lang:cpp:types:ascii|UCH Wiki]]'den alınmıştır.</wrap> <wrap onlyprint>Bu belgedeki bilgiler [[tr:cs:lang:cpp:types:ascii|UCH Wiki]]'den alınmıştır.</wrap>
 <wrap hide>https://wiki.ulascemh.com/doku.php?id=tr:cs:lang:cpp:types:ascii</wrap> <wrap hide>https://wiki.ulascemh.com/doku.php?id=tr:cs:lang:cpp:types:ascii</wrap>
  
  • tr/cs/lang/cpp/types/ascii.1776000413.txt.gz
  • Son değiştirilme: 2026/04/12 13:26
  • Değiştiren: ulascemh