using System; namespace HexadecimalDemo { class Program { static void Main(string[] args) { /* 16 TABANINDA Kİ SAYILARA DENİR 16 tabanında olduğu için 10 rakama ilaveten 6 harf (A, B, C, D, E, F) eklenerek 16 basamağı için yeni rakamlar eklenir. Bunlar sırasıyla 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 0x ile başlayarak hexadecimal formatında yazacağımızı bildiririz 16 tabanında ki sayıları 10 luk tabana çevirmek y hexadecimal tabanları içerisinden seçilir 1. basamak y * 16^0 = y * 1, 2. basamak y * 16^1 = y * 16, 3. basamak y * 16^2 = y * 256, . . . n. basamak y * 16^(n-1) 10 tabanında ki sayıları 16 tabanına çevirmek y 10 luk tabanda yazılan sayı 1. basamak = y % 16 (birinci basamak kalan), y = y / 16 (yeni y bölüm) 2. basamak = y % 16 , y = y / 16 . . . bu işlem bölüm 0 olana kadar devam eder. */ // C# otomatik olarak desteklemektedir. // Çıktısı 1 * 0 + 16 * 0 + 256 * 4 = 1024 Console.WriteLine(0x400); // Tekrar HEX'e dönüştürmek için // Çıktısı 400 Console.WriteLine(1024.ToString("X")); Console.WriteLine(HexToInt("0x400")); Console.WriteLine(IntToHex(1024)); } //Basit bir 16 basamağı 10 luk basamağa çevirme algoritması static int HexToInt(string hex) { hex = hex.ToLower(); hex = hex.Substring(hex.IndexOf('x') + 1); var numbs = "0123456789abcdef"; var result = 0; for (int i = 0; i < hex.Length; i++) { result += numbs.IndexOf(hex[i]) * (int)(Math.Pow(16, (hex.Length - i - 1))); } return result; } //Basit bir 10 basamağı 16 lık basamağa çevirme algoritması static string IntToHex(int num) { var result = string.Empty; var numbs = "0123456789abcdef"; while (num >= 16) { result = numbs[num % 16] + result; num /= 16; } result = numbs[num] + result; return result; } } }