Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
6 posts found
Binary and Hexadecimal: Positional Notation, Bits, Bytes and Conversions
Computer Science Fundamentals PART 01

Binary and Hexadecimal: Positional Notation, Bits, Bytes and Conversions

Hex is shorthand for binary because every two characters map to exactly one byte: four bits make one hex digit. Positional notation, converting by hand, C# and TypeScript literals and formats, reading color codes, GUIDs, hashes and magic numbers, and why a 500 GB disk shows 465 GB in Windows.

14 Nov 2026 13 min 6
Bitwise Operations: AND, OR, XOR, Shifts and Bit Masks for Flags
Computer Science Fundamentals PART 02

Bitwise Operations: AND, OR, XOR, Shifts and Bit Masks for Flags

Bitwise operators process the bits at the same position in two numbers independently; AND filters, OR adds, XOR flips, shifts move. Setting, clearing, toggling and testing Bookstore permissions in one integer, BitOperations, the C# 11 >>> operator, masked shift counts, and how TypeScript squeezes every bitwise operation into 32 bits and silently breaks large IDs.

14 Nov 2026 12 min 7
Integer Representation: Two's Complement, Overflow, Endianness and the Lost long ID in JSON
Computer Science Fundamentals PART 03

Integer Representation: Two's Complement, Overflow, Endianness and the Lost long ID in JSON

Computers store negative integers in two's complement: invert the bits and add 1, so a single adder both adds and subtracts and there is only one zero. The int.MinValue asymmetry and the Math.Abs exception, wrap-around, widths from byte to Int128, endianness and BinaryPrimitives, a long ID above 2^53 silently changing in JSON, Y2038 and an exhausted int identity.

14 Nov 2026 12 min 6
How Floating Point Works: IEEE 754, 0.1 + 0.2, NaN and double vs decimal
Computer Science Fundamentals PART 04

How Floating Point Works: IEEE 754, 0.1 + 0.2, NaN and double vs decimal

0.1 + 0.2 isn't 0.3 because a double stores numbers in base 2 with a sign, an exponent and a 52-bit mantissa, and 0.1 can't be written exactly in that base. The binary64 bit layout, gaps that widen as numbers grow, ±0, NaN and subnormals, comparing with relative tolerance, Half/float/double/decimal, the saturating conversions of .NET 9 and .NET 11, banker's rounding and culture-dependent parsing.

14 Nov 2026 13 min 5
Unicode and UTF-8/UTF-16: Code Points, Surrogate Pairs, Rune and Why string.Length Breaks on Emoji
Computer Science Fundamentals PART 05

Unicode and UTF-8/UTF-16: Code Points, Surrogate Pairs, Rune and Why string.Length Breaks on Emoji

string.Length breaks on emoji because .NET and JavaScript count strings in UTF-16 code units; the family emoji is one grapheme but 5 code points, 8 code units and 18 UTF-8 bytes. From ASCII to Unicode, code points, planes and scalar values, encoding UTF-8 and surrogate pairs by hand, Rune, u8 literals and the BOM, and counting a 280-character review limit correctly with StringInfo and Intl.Segmenter.

14 Nov 2026 11 min 6
Handling Text Correctly: Normalization, Diagnosing Mojibake and Base64
Computer Science Fundamentals PART 06

Handling Text Correctly: Normalization, Diagnosing Mojibake and Base64

Two strings that look the same may not be equal, because "ş" can be written as one code point (NFC) or as s plus a combining mark (NFD); the fix is to bring text to NFC at the edge of the system. Search keys with NFKC, culture-dependent search, diagnosing and repairing mojibake like "ÅŸ" with a hex dump, the CSV/Excel BOM, HTTP charset, the N prefix and UTF-8 collations in SQL Server, Base64/Base64Url and why a JWT isn't encrypted.

14 Nov 2026 14 min 6
Blog Map