Onaltılık Sayı Sistemi: Hex Nasıl Çalışır ve Nerede Kullanılır?
Onaltılık sayı sistemi 16 tabanlıdır ve 0-9 rakamlarıyla A-F harflerini kullanır. Her hex basamağı 4 bitlik ikili veriye karşılık geldiği için uzun binary dizilerini daha kısa ve okunabilir biçimde göstermeyi sağlar; ancak veriyi kendi başına sıkıştırmaz veya bilgisayarın çalışma tabanını değiştirmez.
Bu yazıda (7)
- ›0-9'dan A-F'ye: Hex sembollerinin gerçek değerleri
- ›Basamak değeriyle hex sayısını onluğa çevirme
- ›Binary ile bire bir eşleşme: Her hex basamağı neden 4 bittir?
- ›Renk kodunda FF ve 00 neyi temsil eder?
- ›Bellek adresi, MAC adresi ve hata kayıtlarında hex okuma
- ›Çözümlü örnekler: 2F dönüşümü ve renk kanalını bulma
- ›Sık yapılan hatalar ve karıştırılan gösterimler
Onaltılık Sayı Sistemi: Hex Nasıl Çalışır ve Nerede Kullanılır?
Onluk sistemde 0'dan 9'a kadar on sembole alışığız. Bilgisayar sistemlerinde ise verinin temel düzeyde 0 ve 1'lerle ifade edilmesi, özellikle bellek adresleri, makine kodları, ağ adresleri ve renk değerleri incelenirken uzun diziler oluşturur. Onaltılık sistem bu ikili gösterimi insanın daha kolay okuyabileceği bir biçime dönüştürür.
Buradaki önemli nokta, hex gösterimin bilgisayarın veriyi farklı bir fiziksel biçimde sakladığı anlamına gelmemesidir. Aynı değer, bağlama göre ikili, onluk veya onaltılık olarak yazılabilir. Örneğin onaltılık 2F, onluk 47'ye; ikili 0010 1111'e karşılık gelir. Değer aynıdır, yalnızca gösterim biçimi değişmiştir.
0-9'dan A-F'ye: Hex sembollerinin gerçek değerleri
Onaltılık sistemin tabanı 16'dır. Bu nedenle tek bir basamakta 16 farklı değer gösterilmesi gerekir. İlk 10 değer, onluk sistemdeki rakamlarla yazılır: 0, 1, 2, 3, 4, 5, 6, 7, 8 ve 9. Geriye kalan altı değer için harfler kullanılır:
- A = 10
- B = 11
- C = 12
- D = 13
- E = 14
- F = 15
Harflerin büyük veya küçük yazılması çoğu gösterimde değeri değiştirmez; ancak kullanılan programlama dili ya da yazım standardı belirli bir biçim isteyebilir. F'ten sonra yeni bir tek basamak gelmez. Onluk sistemde 9'dan sonra 10'a geçilmesi gibi, hex sistemde F'ten sonra 10 gelir. Buradaki 10, onluk sistemdeki on değil, hex basamakları açısından 'bir onaltılık grup ve sıfır' anlamındadır ve onluk karşılığı 16'dır.
Bir hex sayısını bağlamdan ayırmak için bazı ortamlarda başına 0x yazılır. Örneğin 0x2F ifadesi, 2F'nin onaltılık olduğunu belirtir. Web renklerinde ise genellikle # işareti kullanılır; #FF0000 içindeki #, sayının renk kodu biçiminde yazıldığını gösterir.
Basamak değeriyle hex sayısını onluğa çevirme
Onaltılık bir sayının her basamağı, sağdan sola doğru 16'nın artan kuvvetleriyle çarpılır. Sağdaki ilk basamağın ağırlığı , bir solundakinin ağırlığı , sonrakinin ağırlığı olur. Bir hex sayısını onluk sisteme çevirmek için her sembolün değerini kendi basamak ağırlığıyla çarpıp sonuçları toplamak gerekir.
Genel biçim şöyledir: a_2a_1a_0_{16}=a_2\times16^2+a_1\times16^1+a_0\times16^0.
Örneğin 2F sayısında F'nin değeri 15'tir. Bu nedenle:
Aynı yöntem 3 basamaklı sayılarda da sürer. Örneğin 1A3 için ilk basamak 256 ile, A basamağı 16 ile, son basamak 1 ile çarpılır: . Bu işlemde harfin rakam gibi doğrudan toplanması hatalıdır; önce A-F arasındaki sembolün 10-15 aralığındaki değeri belirlenmelidir.
Binary ile bire bir eşleşme: Her hex basamağı neden 4 bittir?
İkili sistemde bir bit yalnızca 0 veya 1 olabilir. Dört bit ile farklı kombinasyon üretilebildiği için bir hex basamağı tam olarak dört bitlik bir gruba karşılık gelir. Bu, hex sistemin binary ile ilişkisinin temelidir.
Eşleşmeler şöyledir:
- 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
Dönüşümde binary sayı sağdan başlanarak dörderli gruplara ayrılır. Sol tarafta grup dört bite ulaşmıyorsa başına sıfır eklenebilir; bu sıfırlar değeri değiştirmez. Örneğin 0010 1111, 2 ve F gruplarına ayrılır ve 2F olarak yazılır. Bu yüzden hex gösterim, binary dizisini yaklaşık dörtte bir uzunlukta sunar. Bu bir veri sıkıştırma işlemi değildir: Bitlerin anlamı veya toplam bilgi miktarı değişmez, yalnızca yazım kısalır.
Renk kodunda FF ve 00 neyi temsil eder?
Web renklerinde yaygın hex gösterimi, kırmızı, yeşil ve mavi kanallarını art arda yazan altı basamaklı biçimdir: #RRGGBB. İlk iki basamak kırmızı (R), sonraki iki basamak yeşil (G), son iki basamak mavi (B) bileşenini belirtir.
Her kanal iki hex basamağıyla yazıldığı için 00 ile FF arasında değer alır. 00, o kanala ait değerin 0 olduğunu; FF ise hex sistemde 255 olan en yüksek değeri gösterir. Bu nedenle #FF0000 ifadesi kırmızının 255, yeşil ve mavinin 0 olduğu rengi tanımlar. #000000 üç kanalın da 0 olduğu siyahı; #FFFFFF ise üç kanalın da FF olduğu beyazı ifade eder.
Burada FF'yi onluk 255 olarak okumak gerekir: . Renk kodundaki iki basamağı tek bir sayı gibi ele almak gerekir; örneğin #2F0000 kodunda kırmızı kanalı 2F, yani 47'dir. Renk kodu ile RGB kanal değerleri arasındaki bu ilişki, tasarım araçlarında ve CSS düzenlemelerinde renk seçimini anlamayı kolaylaştırır.
Bellek adresi, MAC adresi ve hata kayıtlarında hex okuma
Hex, bilgisayarın iç verisini insan tarafından daha kısa incelenebilir hâle getirdiği için bellek adreslerinde, işlemci komutlarının incelenmesinde, hata kodlarında ve sistem günlüklerinde kullanılabilir. Örneğin 0x7FFF FFFF biçimindeki değer, bir sistem veya program onu adres olarak yorumladığında belirli bir bellek konumunu gösterebilir. Hex yazımın kendisi adres anlamını belirlemez; ifadenin geçerli bir bellek adresi olup olmadığı da işletim sistemi ve donanıma bağlıdır. Boşluklar çoğu zaman okunabilirlik için eklenir; değerin basamaklarına yeni bir matematiksel anlam katmaz.
MAC adresleri de genellikle iki basamaklı hex gruplarının iki nokta ile ayrılmasıyla yazılır: 00:1A:2B:3C:4D:5E. Buradaki her ikili grup bir hex bayt gösterimidir. A-F harflerinin bulunması, adresin onluk değil hex biçimde yazıldığını anlamaya yardımcı olur.
Hata kodu veya bellek dökümü incelerken hex değeri doğrudan onluk sanmak yanlış sonuç verir. Önce gösterimin tabanı belirlenmeli, ardından gerekiyorsa onluğa ya da binary'ye çevrilmelidir. Ayrıca bir hex değerinin adres olarak kullanılması, onun tek başına anlamını belirlemez; anlam, işletim sistemi, işlemci veya ilgili programın veri yapısına bağlıdır.
Çözümlü örnekler: 2F dönüşümü ve renk kanalını bulma
Örnek 1 — Verilen: . İstenen: Onluk karşılığı.
- Sembollerin değerlerini belirleyin: 2 = 2, F = 15.
- Sağdaki basamağı , soldaki basamağı ile eşleştirin.
- Çarpıp toplayın: .
- Sonuç: .
Kontrol için binary dönüşüm de yapılabilir. 2, 0010'a; F, 1111'e karşılık gelir. Böylece . Binary değerin onluk karşılığı da 47'dir.
Örnek 2 — Verilen: #2FA000. İstenen: R, G ve B kanal değerleri.
- Kodu iki basamaklı üç gruba ayırın: 2F | A0 | 00.
- İlk grup olan 2F'yi onluğa çevirin: . Kırmızı kanalı 47'dir.
- A0 grubunda A = 10 olduğundan: . Yeşil kanalı 160'tır.
- 00 grubunun değeri 0'dır. Mavi kanalı 0'dır.
- Sonuç: #2FA000, RGB(47, 160, 0) olarak okunur.
Bu örnekte 2F'nin 2 ve F olarak iki ayrı kanal değil, kırmızı kanalın tek bir iki-basamaklı hex değeri olduğuna dikkat edilmelidir.
Sık yapılan hatalar ve karıştırılan gösterimler
Onaltılık sistem öğrenilirken en sık görülen karışıklıklar şunlardır:
- A-F'yi harf olarak yorumlamak: Hex içindeki A-F matematiksel sembollerdir; A=10, F=15 değerini taşır. 2F, 'iki ve F' değil, 2 ile 15'in basamak ağırlıklarıyla hesaplandığı bir sayıdır.
- FF'yi 16 sanmak: F tek başına 15'tir; FF ise eder. İki basamaklı ifadede soldaki basamağın 16 ile çarpıldığı unutulmamalıdır.
- Hex'i veri sıkıştırmayla eşitlemek: Hex, binary verinin gösterimini kısaltır. Dosyanın bit sayısını azaltan bir sıkıştırma algoritması değildir.
- Her sayıyı hex sanmak: 47 ifadesi bağlam belirtilmedikçe onluk sayı olarak anlaşılabilir; 0x2F veya 2F gibi bir işaretleme tabanın hex olduğunu açıklar. Bir yazılımın kabul ettiği biçim ayrıca kontrol edilmelidir.
- Renk gruplarını yanlış ayırmak: #FF0000 kodu FF | 00 | 00 şeklinde ayrılır. FF kırmızı, ilk 00 yeşil, son 00 mavidir.
- Baştaki sıfırları gereksiz saymak: 0A ile A aynı sayısal değeri temsil eder; fakat sabit uzunluk beklenen MAC adresi, renk kodu veya byte gösteriminde baştaki sıfır biçimsel olarak gerekli olabilir.
- Binary gruplamasında soldan başlamak: Hex'e çevrimde binary dizisi sağdan dörderli gruplara ayrılır. Sol grubun eksik bitleri sıfırla tamamlanır.
Sınavlarda özellikle taban dönüşümü, A-F sembollerinin değerleri, , basamakları ve bir hex basamağının 4 bit olması birlikte sorulabilir. Bir ifadenin değerini karşılaştırırken önce aynı tabana çevirmek güvenli yöntemdir.
Bir hex sayısının onluk karşılığı, basamak değerlerinin 16'nın kuvvetleriyle çarpılmasıyla bulunur: . Tek hex basamağı için binary karşılık 4 bittir; çünkü .
Bir web sitesinin tasarımında başlık rengini parlak kırmızı yapmak isteyen tasarımcı CSS içinde #FF0000 kullanabilir. Kod üç kanala ayrıldığında kırmızı FF = 255, yeşil 00 = 0 ve mavi 00 = 0 olur; yani renk RGB(255, 0, 0) olarak yorumlanır. Tasarımcı burada bir dosyayı sıkıştırmaz, rengin üç kanal değerini hex biçiminde yazar.
TYT/AYT veya bilişim dersi sorularında önce tabanı belirleyin: A-F harfleri varsa sayı hex olma ihtimali yüksektir, ancak verilen gösterim kuralı esas alınmalıdır. 2F'yi hesaplarken F=15 yazıp yapın. Binary dönüşümde sağdan dörderli gruplama kullanın. Renk kodlarında #RRGGBB ayrımını ve FF=255 sonucunu kontrol edin. Hex gösterimin binary'yi daha kısa yazdığını, fakat veri sıkıştırmadığını birbirine karıştırmayın.
Sık sorulan sorular
Onaltılık sayı sistemi kaç tabanlıdır?
Onaltılık sayı sistemi 16 tabanlıdır. Bir basamakta 0-9 rakamları ile A-F sembolleri kullanılır.
Hex sistemde A, B, C, D, E ve F ne anlama gelir?
A=10, B=11, C=12, D=13, E=14 ve F=15 değerlerini temsil eder.
2F onaltılık sayısının onluk karşılığı nedir?
olduğu için olur.
Bir hex basamağı kaç bitlik binary veriye karşılık gelir?
Bir hex basamağı 4 bite karşılık gelir. Bunun nedeni eşitliğidir.
Hex gösterim veri sıkıştırma mıdır?
Hayır. Hex, binary veriyi daha kısa yazıyla temsil eder; veri içindeki bit sayısını azaltan bir sıkıştırma yöntemi değildir.
#FF0000 renk kodu nasıl okunur?
Kod FF | 00 | 00 olarak ayrılır. FF kırmızı kanalın 255, yeşil ve mavi kanalların 0 olduğunu gösterir; sonuç parlak kırmızıdır.
Hex sayılar nerelerde kullanılır?
Bellek adresleri, MAC adresleri, hata kodları, sistem kayıtları, işlemci ve sayısal elektronik uygulamaları ile web renk kodlarında kullanılabilir.
0x ön eki neyi gösterir?
0x ön eki, onu izleyen ifadenin birçok programlama ve teknik gösterimde onaltılık olarak okunacağını belirtir.
- •Sayı Sistemleriacikders.ankara.edu.tr
- •Sayı Sistemler Sunum Notları.pdfdosya.kmu.edu.tr
- •On altılı sayı sistemitr.wikipedia.org