Hex Hesaplayıcı – Onaltılık Aritmetik
Onaltılık (hexadecimal) sayılarla toplama, çıkarma, çarpma ve bölme işlemi yapın. Hex ile ondalık arasında dönüştürün. Ücretsiz online hesaplayıcı.
Hexadecimal (Base-16): Temeller
Hexadecimal (hex) bir pozisyonal sayısal sistemdir. 16 farklı sembol kullanır: rakamlar 0-9 sıfırdan dokuza değerleri temsil eder ve harfler A-F (veya a-f) ondan onbeşe değerleri temsil eder. Bir hexadecimal rakamı dört binary biti (bir "nibble") temsil eder, bu nedenle hex binary verileri insan okunabilir bir formatta temsil etmek için en doğal yoludur.
Her hex rakamının pozisyonal değeri 16'in bir kuvvetidir. Hex sayısı 2F4 için:
- 2 16² (256) pozisyonda: 2 × 256 = 512
- F (15) 16¹ (16) pozisyonda: 15 × 16 = 240
- 4 16⁰ (1) pozisyonda: 4 × 1 = 4
- Toplam: 512 + 240 + 4 = 756 ondalık
Ondalıktan hex'e dönüştürme: 16'ya bölünerek kalanları (sağdan sola) kaydedin. 756 ÷ 16 = 47 R 4; 47 ÷ 16 = 2 R 15 (F); 2 ÷ 16 = 0 R 2. Yukarı okuma: 2F4₁₆ ✓. Çoğu programlama dilinde, hex literals 0x ile ön eki ile prefixlenir: 0x2F4 = 756.
Hex Ondalığa Dönüştürme Tablosu
Hex rakamlarını ve ortak hex değerlerini ondalığa dönüştürmek için hızlı bir referans:
| Hex | Ondalık | Binary | Ortak Anlam |
|---|---|---|---|
| 0x00 | 0 | 0000 0000 | Boş byte, yanlış, off |
| 0x01 | 1 | 0000 0001 | Doğru, etkin |
| 0x0A | 10 | 0000 1010 | Yeni satır karakteri (LF) |
| 0x0D | 13 | 0000 1101 | Satır başı (CR) |
| 0x1F | 31 | 0001 1111 | Birim ayırıcı |
| 0x20 | 32 | 0010 0000 | Boşluk karakteri (ASCII) |
| 0x41 | 65 | 0100 0001 | 'A' ASCII |
| 0x61 | 97 | 0110 0001 | 'a' ASCII (küçük harf) |
| 0x7F | 127 | 0111 1111 | DEL karakteri; imzalı çift nipelin maksimum değeri |
| 0x80 | 128 | 1000 0000 | İmza biti ayarlandı (negatif imzalı byte) |
| 0xFF | 255 | 1111 1111 | Maksimum imzalı byte; tüm bitler ayarlandı |
| 0x100 | 256 | 1 0000 0000 | Bir byte daha fazla |
| 0xFFFF | 65,535 | 16 birler | Maksimum 16-bit imzalı değer |
| 0xFFFFFF | 16,777,215 | 24 birler | Maksimum 24-bit (16M renk) |
Hex ve binary arasındaki ilişki doğrudan: her hex rakamı 4 biti temsil eder. A = 1010, B = 1011, C = 1100, D = 1101, E = 1110, F = 1111. 0xAB'i binary'ye dönüştürme: A=1010, B=1011 → 10101011₂ = 171₁₀.
Hex Arithmetik: Toplama, Çıkarma, Çarpma
Hexadecimal aritmetik, ondalık aritmetik kurallarına uymaktadır, ancak 10 yerine 16'ya göre taşıma ve borç alma. Hex aritmetiği anlama, assembly programlama, embedded sistemler ve derleyici çıktısını okumak için önemlidir.
Toplama örneği: 3A + 27. Birimler: A + 7 = 10 + 7 = 17 = 1×16 + 1 → 1 yazın, 1 taşıyın. Onaltılar: 3 + 2 + 1 (taşım) = 6. Sonuç: 61₁₆ = 97₁₀. Doğrula: 58 + 39 = 97 ✓.
Çıkarma örneği: C3 - 5F. Birimler: 3 < F (15), bu nedenle borç al: 3 + 16 - 15 = 4, ve 1'i sonraki sütuna taşıyın. Onaltılar: C (12) - 5 - 1 (borç) = 6. Sonuç: 64₁₆ = 100₁₀. Doğrula: 195 - 95 = 100 ✓.
Çarpma örneği: 1A × 3. A × 3 = 30 = 1E₁₆ (E yazın, 1 taşıyın). 1 × 3 + 1 = 4. Sonuç: 4E₁₆ = 78₁₀. Doğrula: 26 × 3 = 78 ✓.
İleri düzey hex hesaplamaları için, ondalık, hesaplamayı ve geri dönüştürmeyi genellikle daha güvenilir bir yöntem olarak kullanmak daha iyidir, ancak derinlemesine pratikseniz. Ancak, hex aritmetiği anlama, bellek düzeni, CPU kayıt defteri ve veri temsilini anlama için sezgi sağlar.
Hex in Web Tasarımı: Renk Kodları
HTML ve CSS renk kodları, programlama dışında hexadecimalin en görünür uygulamalarından biridir. Renkler #RRGGBB olarak ifade edilir ve her kanal 00 (0 yoğunluğu) ile FF (255 = tam yoğunluk) arasında değişir. Bu, 256³ = 16,777,216 olası renk üretir.
| Hex Renk | Kırmızı | Yeşil | Mavi | Renk Adı |
|---|---|---|---|---|
| #FF0000 | 255 | 0 | 0 | Tam kırmızı |
| #00FF00 | 0 | 255 | 0 | Tam yeşil (limon) |
| #0000FF | 0 | 0 | 255 | Tam mavi |
| #FFFF00 | 255 | 255 | 0 | Sarı |
| #FF00FF | 255 | 0 | 255 | Magenta |
| #00FFFF | 0 | 255 | 255 | Sentetik |
| #FFFFFF | 255 | 255 | 255 | Beyaz |
| #000000 | 0 | 0 | 0 | Siyah |
| #808080 | 128 | 128 | 128 | Orta gri |
| #FF5733 | 255 | 87 | 51 | Canlı turuncu |
CSS, 4- (#RGBA) ve 8- (#RRGGBBAA) haneli (#RGBA) ve 8- (#RRGGBBAA) renkleri destekler. AA, alfa kanalıdır (00 = opak, FF = opak). Kısaltma renkleri (#RGB), her bir haneyi tekrarlayarak genişletilir: #F3A = #FF33AA.
Web tasarımcıları, renkleri değiştirmek için hex değerlerini sıklıkla ayarlar. Kırmızı kanala eklemek renkleri ısıtır; çıkarmak onları serinleştirir. Her bir R, G ve B değeri eşit olan hex renkleri her zaman gri tonları üretir. Bir renk gibi #7F7F7F, her kanalda 127/255 (yani %50) gri renktir.
Hex in Programlama: Bellek Adresleri ve Bit İşlemleri
Sistem programlama, bellek adresleri, bit bayrakları ve donanım kayıt defteri için hex doğal dilidir. C, C++, assembly veya embedded sistemlerde çalışan her programcı, sürekli olarak hex ile karşılaşır.
Bellek adresleri: 32-bit bir sistemde adresler 0x00000000 ile 0xFFFFFFFF arasında (4 GB) değişir. Ortak adres aralıkları: 0x00000000–0x00FFFFFF (düşük bellek), 0x7FFFFFFF (max pozitif 32-bit imzalı int), 0x80000000 (negatif alanın başlangıcı imzalı yorumlamada), 0xFFFFFFFF (max 32-bit imzısız). 64-bit sistemlerde, kullanıcı alanı genellikle 0x0000000000000000–0x00007FFFFFFFFFFF.
Bit işlemleri ile hex maskeleri: Bit operasyonları, nibble sınırlarına uyumlu olduğu için doğal olarak hex ile ifade edilir.
| İşlem | İfade | Etki |
|---|---|---|
| Bit 3'ü ayarla | x |= 0x08 | Bit 3'ü 1 yap, diğerlerini değiştirme |
| Bit 3'ü temizle | x &= ~0x08 | Bit 3'ü 0 yap, diğerlerini değiştirme |
| Bit 3'ü tersine çevir | x ^= 0x08 | Bit 3'ü tersine çevir, diğerlerini değiştirme |
| Bit 3'ü kontrol et | (x & 0x08) != 0 | Bit 3'ün ayarlı olup olmadığını test et |
| Alt nibblei çıkar | x & 0x0F | Alt 4 biti al |
| Üst nibblei çıkar | (x >> 4) & 0x0F | Üst 4 biti al |
Ünlü hex sabitleri: Programcılar, eski IBM sistemlerinde boş bellek işaretlemesi olarak kullanılan 0xDEADBEEF, Java sınıf dosyası büyüklüğü numarası olan 0xCAFEBABE, Mach-O binary format büyüklüğü numarası olan 0xFEEDFACE, bellek izleme için kullanılan 0x0BADF00D ve iOS crash algılama için kullanılan 0xDEADC0DE gibi hatırlatıcı sabitler oluşturmuştur. Bu sabitler, hata ayıklama sırasında hex dümplenin kolayca görülebilmesi için oluşturulmuştur.
Dosya Biçimi İmzaları ve Hex Forensik
Her dosya formatı, başlangıçta karakteristik bir byte dizisi olan "mucize numarası" veya dosya imzasına sahiptir. Hex editörleri ve dijital forensik araçları, dosya türlerini dosya uzantısı olmadan dosya türlerini tanımlamak için bu imzaları kullanır. Dosya imzaları bilmesi, veri recovery, malware analizi ve dijital forensik için önemlidir.
| Dosya Türü | Hex İmza (ilk byte'lar) | ASCII Temsilatı |
|---|---|---|
| JPEG resim | FF D8 FF | ÿØÿ |
| PNG resim | 89 50 4E 47 0D 0A 1A 0A | .PNG.... |
| PDF belgesi | 25 50 44 46 | |
| ZIP arşiv | 50 4B 03 04 | PK.. |
| GIF resim | 47 49 46 38 | GIF8 |
| ELF yürütülebilir (Linux) | 7F 45 4C 46 | .ELF |
| Windows PE yürütülebilir | 4D 5A | MZ |
| MP3 ses | FF FB veya 49 44 33 | ÿû veya ID3 |
| SQLite veritabanı | 53 51 4C 69 74 65 | SQLite |
Emniyet profesyonelleri, dosya uzantısı güvenmeden binary dosyaları incelemek için hex kullanır. "belge.pdf" adlı bir dosya, 4D 5A ile başlarsa aslında bir Windows yürütülebilir dosya - bir yaygın malware hile. Ağ paketlerinin hex analizi, protokol yapıları, şifreleme başlıkları ve potansiyel saldırıları ortaya koyar.
Taban Sayı Karşılaştırması: Onluk, İkili, Sekizlik, Onaltılık
Bilgisayarlar farklı amaçlar için farklı sayı tabanları kullanır. Onları anlama, teknik belgelere okuma, hata ayıklama ve sistem programlama yardımcı olur.
| Onluk | İkili (taban 2) | Sekizlik (taban 8) | Onaltılık (taban 16) |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 0001 0000 | 20 | 10 |
| 64 | 0100 0000 | 100 | 40 |
| 128 | 1000 0000 | 200 | 80 |
| 255 | 1111 1111 | 377 | FF |
| 256 | 1 0000 0000 | 400 | 100 |
| 1024 | 100 0000 0000 | 2000 | 400 |
Sekizlik (taban 8) bir zamanlar bilgisayarlarda yaygın olarak kullanılıyordu (Unix dosya izinleri: chmod 755 = 111 101 101 ikili = rwxr-xr-x). Onaltılık, modern 8-bit, 16-bit, 32-bit ve 64-bit mimarilerle uyumlu 4 bitlik her bir basamak (onaltılık) yerine 3 bitlik her bir basamak (sekizlik) ile daha iyi uyumlu olduğu için sekizlik için çoğu amaç için onaltılık yerini aldı.
Sıkça Sorulan Sorular
Hex ve binary arasında hızlı bir şekilde nasıl dönüştürülür?
Her hex rakamı tam olarak 4 binary bitine karşılık gelir: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000, 9=1001, A=1010, B=1011, C=1100, D=1101, E=1110, F=1111. 0xB7'i dönüştürmek için: B=1011, 7=0111 → 10110111₂. 11001010₂'yi dönüştürmek için: 1100=C, 1010=A → 0xCA.
Why CSS renkleri neden hexadecimal kullanır?
CSS, RGB kanalı (0-255) için her biri tam olarak 2 hex rakamına (00-FF) uyan bir neden kullanır. #RRGGBB formatı, 24-bit renk modelini kullanan gösterim donanımına doğrudan harmanlanır. HTML, erken 1990'larda X11 renk tanımlamalarından hex renkleri benimsemiştir ve bu konvansiyon standart olarak kalmıştır.
0xFF, hangi dekadik rakama eşittir?
0xFF = 15×16 + 15 = 240 + 15 = 255. Binary'de FF = 1111 1111, yani 8 bit tümü ayarlanmıştır. 255, bir imzısız byte (uint8) için maksimum değer, her RGB renk kanalı için maksimum yoğunluk ve ağ (255.255.255.255) ve bilgisayar ağında sürekli olarak görünür.
0x1F ve 0xF1 arasındaki fark nedir?
Bunlar, aynı rakamları farklı bir sırayla farklı sayılar. 0x1F = 1×16 + 15 = 31 dekadik. 0xF1 = 15×16 + 1 = 241 dekadik. Binary'de: 0x1F = 0001 1111; 0xF1 = 1111 0001. Pozisyonel değer önemlidir, 19 ≠ 91 gibi dekadikte.
32-bit bir sayıyı temsil etmek için kaç hex rakamı gerekir?
Tam olarak 8 hex rakamı (16⁸ = 2³², tüm 32-bit değerleri 0x00000000'dan 0xFFFFFFFF'e kadar kapsar). 32-bit sistemlerde bellek adresleri 8-hex rakam olarak gösterilir. 64-bit sayılar için 16-hex rakam gerekir (0x0000000000000000'dan 0xFFFFFFFFFFFFFFFF'e kadar).
Hex sayılarında "0x" ön eki ne anlama gelir?
"0x" ön eki, C ve çoğu programlama dilinde, takip eden sayının hexadecimal olduğunu belirtmek için kullanılan bir notasyon conventionidir. "0x" "hex" için kısaltmasıdır ( 'x' hexadecimal'i ima eder). Diğer notasyonlar: assembly'de son 'h' (FFh), CSS ve bazı durumlarda başlangıç '#' ( #FF0000), bazı eski dillerde $ ön eki ( $FF).
Hex, IP adreslerinde nasıl kullanılır?
IPv4 adresleri (örneğin 192.168.1.1), her oktetin hex olarak ifade edilebilir: 192.168.1.1 = 0xC0 0xA8 0x01 0x01 = 0xC0A80101. IPv6 adresleri zaten hex olarak yazılır: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Bu, hex aritmetiği ile IPv6 adresinin kolayca işlenmesi sağlar.
Hex editörü nedir ve ne zaman kullanırım?
Hex editörü, dosyaları raw byte olarak hexadecimal olarak gösterir ve düzenler. Kullanım alanları: dosya formatı imzalarını incelemek için dosya türlerini tanımlamak, binary oyun kaydetme dosyalarını düzenlemek, yazılımı ters mühendisliği, ağ yakalamalarını analiz etmek, hasarlı dosyaları geri kazanmak ve dijital forensik. Popüler hex editörleri arasında HxD (Windows), hex fiend (Mac) ve xxd (komut satırı Unix aracı) bulunur.
Hex, dekadikten neden bilgisayar tarafından kullanılır?
Bilgisayarlar binary (2 tabanlı) çalışır ve 16 = 2⁴ — hex, binary ile mükemmel bir şekilde uyuşur. Bir hex rakamı = 4 bit, iki hex rakamı = 1 byte (8 bit), dört hex rakamı = 16 bit, sekiz hex rakamı = 32 bit. Dekadik, 2'nin herhangi bir kuvvetine uymaz, bu nedenle hex, binary verilerin kompakt bir şekilde ifade edilmesini sağlar.
Hex renkini RGB değerlerine nasıl dönüştürürüm?
6-hex rakamını üç 2-hex grupına ayırın: #RRGGBB. Her birini hex'ten dekadik'e dönüştürün. Örnek: #4A90E2 → R=0x4A=74, G=0x90=144, B=0xE2=226. Bu renk, rgb(74, 144, 226) — orta mavi. Geri dönüşüm için: her dekadik değeri 2-hex rakamına dönüştürün ve birleştirin: rgb(255, 87, 51) → #FF5733.