Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
6 yazı bulundu
Binary ve Hexadecimal: Positional Notation, Bit, Byte ve Dönüşümler
Bilgisayar Bilimi Temelleri SERİ 01

Binary ve Hexadecimal: Positional Notation, Bit, Byte ve Dönüşümler

Hex, her iki karakteri tam bir byte'a denk geldiği için binary'nin kısa yazımıdır: dört bit bir hex basamağıdır. Positional notation, elle dönüşüm, C# ve TypeScript literal'leri ve format'ları, renk kodu, GUID, hash ve magic number okumak, 500 GB'lık diskin Windows'ta neden 465 GB göründüğü.

14 Kas 2026 13 dk 5
Bitwise İşlemler: AND, OR, XOR, Shift ve Bit Mask ile Flag Yönetimi
Bilgisayar Bilimi Temelleri SERİ 02

Bitwise İşlemler: AND, OR, XOR, Shift ve Bit Mask ile Flag Yönetimi

Bitwise operatörler iki sayının aynı konumdaki bitlerini ayrı ayrı işler; AND filtreler, OR ekler, XOR çevirir, shift kaydırır. Bookstore izinlerini tek bir integer'da set/clear/toggle/test etmek, BitOperations, C# 11 >>> operatörü, shift miktarının maskelenmesi ve TypeScript'in her bitwise işlemi 32 bite indirip büyük ID'leri sessizce bozması.

14 Kas 2026 12 dk 6
Integer Temsili: Two's Complement, Overflow, Endianness ve JSON'da Kaybolan long ID
Bilgisayar Bilimi Temelleri SERİ 03

Integer Temsili: Two's Complement, Overflow, Endianness ve JSON'da Kaybolan long ID

Bilgisayar negatif integer'ları two's complement ile tutar: bitleri çevirip 1 eklersin, böylece tek bir toplayıcı hem toplar hem çıkarır ve tek bir sıfır kalır. int.MinValue asimetrisi ve Math.Abs exception'ı, wrap-around, byte'tan Int128'e genişlikler, endianness ve BinaryPrimitives, 2^53'ü geçen long ID'nin JSON'da sessizce değişmesi, Y2038 ve tükenen int identity.

14 Kas 2026 12 dk 6
Floating Point Nasıl Çalışır: IEEE 754, 0.1 + 0.2, NaN ve double vs decimal
Bilgisayar Bilimi Temelleri SERİ 04

Floating Point Nasıl Çalışır: IEEE 754, 0.1 + 0.2, NaN ve double vs decimal

0.1 + 0.2, 0.3 etmez çünkü double sayıları 2 tabanında sign, exponent ve 52 bitlik mantissa ile tutar ve 0.1 bu tabanda tam yazılamaz. binary64'ün bit düzeni, sayılar büyüdükçe açılan boşluklar, ±0, NaN ve subnormal, relative tolerance ile karşılaştırma, Half/float/double/decimal farkı, .NET 9 ve .NET 11'in saturating dönüşümleri, banker's rounding ve culture'a bağlı parse.

14 Kas 2026 13 dk 3
Unicode ve UTF-8/UTF-16: Code Point, Surrogate Pair, Rune ve Emoji'de Bozulan string.Length
Bilgisayar Bilimi Temelleri SERİ 05

Unicode ve UTF-8/UTF-16: Code Point, Surrogate Pair, Rune ve Emoji'de Bozulan string.Length

string.Length emojide bozulur çünkü .NET ve JavaScript string'i UTF-16 code unit olarak sayar; aile emojisi tek bir grapheme ama 5 code point, 8 code unit ve 18 UTF-8 byte'tır. ASCII'den Unicode'a, code point, plane ve scalar value, UTF-8 ve surrogate pair'i elle encode etmek, Rune, u8 literal ve BOM, StringInfo ve Intl.Segmenter ile 280 karakterlik yorum sınırını doğru saymak.

14 Kas 2026 11 dk 6
Text'i Doğru İşlemek: Normalization, Mojibake Teşhisi ve Base64
Bilgisayar Bilimi Temelleri SERİ 06

Text'i Doğru İşlemek: Normalization, Mojibake Teşhisi ve Base64

Aynı görünen iki string eşit olmayabilir çünkü "ş" hem tek code point (NFC) hem s + birleşen işaret (NFD) olarak yazılabilir; çözüm text'i sistemin sınırında NFC'ye getirmek. NFKC ile arama anahtarı, culture'a göre değişen arama, "ÅŸ" gibi mojibake'i hex dump ile teşhis edip onarmak, CSV/Excel BOM'u, HTTP charset, SQL Server'da N prefix'i ve UTF-8 collation, Base64/Base64Url ve JWT'nin neden şifreli olmadığı.

14 Kas 2026 14 dk 6
Blog Haritası