| İ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:27] – ulascemh | tr:cs:lang:cpp:types:ascii [2026/04/12 13:36] (mevcut) – ulascemh |
|---|
| {{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. |
| |
| <datatable fixed-header='{ "header": true, "headerOffset": 50 }' paging="false"> | <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> |
| |