onaltılık - Hexadecimal

Gelen matematik ve işlem , onaltılı (aynı zamanda 16 baz ya da heks ) numarası sistemi olup konumsal numarası sistem bir kullanarak sayıları temsil radix farklı 16 (taban) ortak bir şekilde , 10 sembolleri, onaltılı kullanım 16 farklı semboller kullanarak numaraları temsil çoğunlukla "0"–"9" sembolleri 0 ila 9 arasındaki değerleri temsil eder ve "A"–"F" (veya alternatif olarak "a"–"f") 10 ila 15 arasındaki değerleri temsil eder.

Onaltılık sayılar, ikili kodlanmış değerlerin insan dostu bir temsilini sağladıkları için bilgisayar sistemi tasarımcıları ve programcıları tarafından yaygın olarak kullanılmaktadır . Her onaltılık basamak , bir baytın 1/2'si olan bir yarım bayt (veya yarım bayt ) olarak da bilinen dört biti (ikili basamaklar) temsil eder . Örneğin, tek bir bayt, ikili biçimde 00000000 ila 11111111 arasında değişen değerlere sahip olabilir ve bu, uygun bir şekilde 00 ila FF onaltılı olarak gösterilebilir.

Matematikte, tabanı belirtmek için genellikle bir alt simge kullanılır. Örneğin, ondalık değer1.281 , onaltılık olarak 501 16 olarak ifade edilir . Programlamada, genellikle bir önek veya sonek içeren onaltılık sayıları belirtmek için bir dizi gösterim kullanılır. Önek 0x, C ve ilgili programlama dillerinde kullanılır ve bu değeri 0x501.

Onaltılık, düz metnin her bir baytının iki adet 4 bitlik değere bölündüğü ve iki onaltılık basamakla temsil edildiği Base16 aktarım kodlamasında kullanılır .

temsil

Yazılı temsil

Hemen hemen tüm modern kullanımlarda, A–F veya a–f harfleri 10-15 değerlerini temsil ederken, 0–9 rakamları normal değerlerini temsil etmek için kullanılır.

Küçük harf veya büyük harf kullanımına ilişkin evrensel bir kural yoktur, bu nedenle her biri belirli ortamlarda topluluk standartlarına veya sözleşmeye göre yaygın veya tercih edilir; karışık durum bile sıklıkla kullanılır. Yedi segmentli ekranlar , birbirinden ayırt edilebilen rakamlar oluşturmak için karışık harfli AbCdEF kullanır.

Uzun bir listede onaltılık değerleri ayırmak için boşluk kullanmanın (virgül veya başka bir noktalama işareti yerine) bazı standartlaştırmaları vardır. Örneğin, aşağıdaki onaltılık dökümde her 8 bitlik bayt , aralarında boşluk bulunan 2 basamaklı bir onaltılık sayıdır, başlangıçtaki 32 bitlik ofset ise 8 basamaklı bir onaltılık sayıdır.

00000000  57 69 6b 69 70 65 64 69  61 2c 20 74 68 65 20 66  
00000010  72 65 65 20 65 6e 63 79  63 6c 6f 70 65 64 69 61  
00000020  20 74 68 61 74 20 61 6e  79 6f 6e 65 20 63 61 6e 
00000030  20 65 64 69 74 0a

Ondalık sayıdan ayırt etme

Tabanın net olmadığı bağlamlarda , onaltılık sayılar belirsiz olabilir ve diğer tabanlarda ifade edilen sayılarla karıştırılabilir. Değerleri açık bir şekilde ifade etmek için çeşitli kurallar vardır. Sayısal bir alt simge (ondalık olarak yazılır) tabanı açıkça verebilir: 159 10 , ondalık sayı 159'dur; 159 16 , 345 10'a eşit olan onaltılık 159'dur . Bazı yazarlar, 159 ondalık ve 159 onaltılık veya 159 d ve 159 h gibi bir metin alt indisini tercih eder .

Donald Knuth , The TeXbook adlı kitabında belirli bir sayı tabanını temsil etmek için belirli bir yazı tipinin kullanımını tanıttı . Onaltılık gösterimler orada bir daktilo yazı tipiyle yazılmıştır : 5A3

Çoğu bilgisayar programlama ortamında kullanılanlar gibi doğrusal metin sistemlerinde, çeşitli yöntemler ortaya çıkmıştır:

  • Unix (ve ilgili) kabukları, AT&T montaj dili ve benzer şekilde C programlama dili (ve C++ , C# , Go , D , Java , JavaScript , Python ve Windows PowerShell gibi sözdizimsel alt öğeleri ) 0x, onaltılı olarak temsil edilen sayısal sabitler için öneki kullanır : 0x5A3. Karakter ve dize sabitleri, önek ve \xardından iki onaltılık basamakla onaltılık karakter kodlarını ifade edebilir : Esc kontrol karakterini '\x1B'temsil eder ; iki gömülü Esc karakterine sahip 11 karakter içeren bir dizedir. printf işlev ailesiyle onaltılık bir tamsayı çıktısı almak için format dönüştürme kodu veya kullanılır."\x1B[0m\x1B[25;1H"%X%x
  • Gelen URI'lar (dahil URL'ler ), karakter kodlarının öneki onaltılı çiftleri olarak yazılır %: kodudur boşluk (boş) bir karakter, ASCII hex kod noktası 20, ondalık içinde 32.http://www.example.com/name%20with%20spaces%20
  • Gelen XML ve XHTML , karakterler onaltılı olarak ifade edilebilir sayısal karakter başvuruları notasyon kullanılarak örnek için, karakter U +, 2019 da (sağ tek tırnak işareti) temsil eder. Eğer yoksa sayı ondalıktır (dolayısıyla aynı karakterdir).&#xcode;’x’
  • In Unicode ile standart, bir karakter değeri temsil edilir U+onaltılık değeri ve ardından örn U+20AColan Euro işareti (€).
  • HTML, CSS ve X Penceresindeki renk referansları altı onaltılık basamakla (bu sırayla kırmızı, yeşil ve mavi bileşenler için ikişer adet) ön eki ile ifade edilebilir #: örneğin beyaz, olarak temsil edilir #FFFFFF. CSS ayrıca bileşen başına bir altı basamaklı 3 altı basamaklı kısaltmalara izin verir: #FA3, #FFAA33'ü kısaltır (altın portakal:  ).
  • In MIME (e-posta uzantıları) alıntı-yazdırılabilir kodlama, karakter kodları öneki onaltılık çiftleri olarak yazılır =: Espa=F1a"España" dir (F1 ISO / IEC 8859-1 karakter kümesinde ñ için kodudur)).
  • Intel'den türetilen derleme dillerinde ve Modula-2'de, onaltılık sayı, H veya h : FFhveya ekli son ekiyle gösterilir 05A3H. Bazı uygulamalar biri yazıyormuş böylece ilk onaltılık basamak karakteri birer rakam olmadığı zaman bir sıfır gerektirir 0FFhyerine FFh. Diğer bazı uygulamalar (NASM gibi) C tarzı sayılara ( 0x42) izin verir .
  • Diğer montaj dilleri ( 6502 , Motorola ), Pascal , Delphi , bazı sürümleri BASIC ( Commodore ), GameMaker Dili , Godot ve Forth kullanmak $önek olarak: $5A3.
  • Bazı montaj dilleri (Microchip) gösterimi kullanır H'ABCD'(ABCD 16 için ). Benzer şekilde, Fortran 95 Z'ABCD' kullanır.
  • Ada ve VHDL, onaltılık sayıları temel "sayısal tırnaklar" içine alır: 16#5A3#. Bit vektör sabitleri için VHDL gösterimi kullanır x"5A3".
  • Verilog , formdaki onaltılı sabitleri temsil eder 8'hFF; burada 8, değerdeki bit sayısıdır ve FF, onaltılık sabittir.
  • Smalltalk dil öneki kullanır 16r:16r5A3
  • PostScript ve Bourne kabuğu ve türevleri 16#: ön ekiyle birlikte hex'i belirtir 16#5A3. PostScript için, ikili veriler (görüntü pikselleri gibi) ön eksiz ardışık onaltılık çiftler olarak ifade edilebilir: AA213FD51B3801043FBC...
  • Common Lisp önekleri kullanır #xve #16r. *read-base* ve *print-base* değişkenlerini 16'ya ayarlamak, Common Lisp sisteminin okuyucusunu ve yazıcısını, sayıları okumak ve yazdırmak için Onaltılık sayı gösterimine geçirmek için de kullanılabilir. Böylece, giriş veya çıkış tabanı 16 olarak değiştirildiğinde, Onaltılık sayılar #x veya #16r önek kodu olmadan temsil edilebilir.
  • MSX BASIC , QuickBASIC , FreeBASIC ve Visual Basic öneki onaltılık sayılar &H:&H5A3
  • Altıgen için BBC BASIC ve Lokomotif BASIC kullanımı &.
  • TI-89 ve 92 serisi bir 0hönek kullanır :0h5A3
  • ALGOL 68 , 16ronaltılık sayıları belirtmek için öneki kullanır : 16r5a3. İkili, dörtlü (taban-4) ve sekizli sayılar benzer şekilde belirtilebilir.
  • Geleneksel işletim sistemlerini ( zOS , zVSE , zVM , TPF , IBM i ) çalıştıran IBM ana bilgisayarlarında ( zSeries ) ve orta ölçekli bilgisayarlarda ( IBM i ) en yaygın onaltılık biçim , Assembler, PL/I , COBOL , JCL'de kullanılır , komut dosyaları, komutlar ve diğer yerler. Bu biçim, diğer (ve artık kullanılmayan) IBM sistemlerinde de yaygındı. Zaman zaman kesme işareti yerine tırnak işaretleri kullanılmıştır.X'5A3'
  • Herhangi bir IPv6 adresi dört onaltılı basamağı (bazen sekiz grup olarak yazılabilir hextets her grup bir kolon ile ayrılır), ( :). Bu, örneğin, geçerli bir IPv6 adresidir: 2001:0db8:85a3:0000:0000:8a2e:0370:7334veya sıfırlar şu şekilde kaldırılarak kısaltılır 2001:db8:85a3::8a2e:370:7334( IPv4 adresleri genellikle ondalık olarak yazılır).
  • Genel olarak benzersiz tanımlayıcılar , genellikle eşit olmayan kısa çizgiyle ayrılmış gruplarda, örneğin 3F2504E0-4F89-41D3-9A0C-0305E82C3301.

10-15 için diğer semboller

Harfler kullanılması A yoluyla F 9'un üzerinde rakamları temsil etmek bilgisayarların erken tarihinin evrensel değildi.

  • 1950'lerde, Bendix-14 gibi bazı kurulumlar, 10-15 değerlerini 0 , 1 , 2 , 3 , 4 ve 5 olarak belirtmek için 0 ile 5 arasındaki rakamları bir üst çizgi ile kullanmayı tercih etti .
  • SWAC (1950) ve Bendix G-15 (1956) bilgisayarlar küçük harfler kullanılmıştır u , v , w , x , y ve z 15 değerler için 10.
  • İlyak I (1952), bilgisayar büyük harfler kullanılan K , S , N , J , K ve L 15 değerler için 10.
  • Librascope LGP-30 (1956) , 10 ila 15 arasındaki değerler için F , G , J , K , Q ve W harflerini kullandı .
  • Honeywell Datamatic D-, 1000 (1957) küçük harfler kullanılmıştır b , c , d , e , f ve g ise Elbit  büyük harfler kullanılmıştır (1967) 100 B , C , D , E , F ve G değerlerinin 10 ila 15.
  • Monrobot XI (1960) harfleri kullanılmıştır S , T , U , V , W, ve X, 15 değerleri için 10.
  • NEC, Parametron bilgisayar NEAC 1103 (1960) harfleri kullanılmıştır D , G , H , J , K (ve muhtemelen V değerleri 10-15).
  • Pacific Data Systems 1020 (1964) , 10 ila 15 arasındaki değerler için L , C , A , S , M ve D harflerini kullandı .
  • 1968'de Boby Lapointe tarafından Bibi-ikili gösterimde yeni sayısal semboller ve isimler tanıtıldı . Bu gösterim çok popüler olmadı.
Bruce Alan Martin'in onaltılık gösterim önerisi
  • Brookhaven Ulusal Laboratuvarı'ndan Bruce Alan Martin, A-F seçimini "saçma" olarak değerlendirdi. 1968'de CACM editörüne yazdığı bir mektupta , bit konumlarına dayanan ve pek kabul görmeyen tamamen yeni bir sembol seti önerdi.
  • Bazı yedi segmentli ekran kod çözücü yongaları (ör. 74LS47), yalnızca 0-9'u doğru şekilde üretmek için tasarlanmış mantık nedeniyle beklenmedik çıktılar gösterir.

Sözlü ve dijital temsiller

On ile onbeş arasındaki miktarları temsil eden geleneksel sayılar yoktur - harfler yerine kullanılır - ve çoğu Avrupa dilinde ondan büyük sayılar için ondalık olmayan isimler yoktur. İngiliz çeşitli sivil ondalık güçler için ismi vardır rağmen ( çifti ilk için ikili iktidar, skor ilk için vigesimal güç, düzine , brüt ve büyük bir brüt ilk üç için onikili güçler), hiç İngilizce adı onaltılık güçlerini açıklar (ondalık 16 , 256, 4096, 65536, ... ). Bazı insanlar, bir telefon numarası gibi veya NATO fonetik alfabesini , Müşterek Ordu/Donanma Fonetik Alfabesini veya benzer bir geçici sistemi kullanarak onaltılık sayıları basamak basamak okurlar . IBM System/360 programcıları arasında onaltılık sayının benimsenmesinin ardından , Magnuson (1968), onaltılık harflere kısa adlar veren bir telaffuz kılavuzu önerdi - örneğin, "A", "ann", B "bet" olarak telaffuz edildi, C "chris", vb. Başka bir adlandırma sistemi, Babb (2015) tarafından bir TV dizisinden şaka olsun diye detaylandırılmıştır. Rogers (2007) tarafından, gerçek sayı A-F sayılarını içermese bile, her durumda sözlü temsili ayırt edilebilir hale getirmeye çalışan başka bir adlandırma sistemi çevrimiçi olarak yayınlandı. Örnekler aşağıdaki tablolarda listelenmiştir.

Onaltılık parmak sayma düzeni

Rakamlarla sayma sistemleri hem ikili hem de onaltılık sayılar için tasarlanmıştır. Arthur C. Clarke , on parmak üzerinde sıfırdan 1023 10'a kadar parmak sayımına izin vererek her parmağın bir açma/kapama biti olarak kullanılmasını önerdi . FF 16'ya (255 10 ) kadar saymak için başka bir sistem sağda gösterilmektedir.

Magnusson (1968)
adlandırma yöntemi
Sayı Telaffuz
A ann
B bahis
C chris
NS nokta
E ernest
F don
1 A anne karnında
A0 anne
5B elli bahis
A01C annty christeen
1AD0 anne dotty
3A7D otuz yıllık yetmiş nokta
Rogers (2007)
adlandırma yöntemi
Sayı Telaffuz
A on
B on bir
C on iki
NS ezmek
E eptwin
F fim
10 teks
11 tek kişilik
1F fimteek
50 beş kişilik
C0 on iki
100 yüz
1000 thousek
3E thirtek-eptwin
E1 eptek-bir
C4A on iki-yüz-fourtek-on
1743 bir-thousek-
yedi- -hundrek-fourtek-üç

işaretler

Onaltılık sistem, negatif sayıları ondalık sistemde olduğu gibi ifade edebilir: −42 10'u temsil etmek için -2A vb.

Onaltılık, işlemcide kullanılan kesin bit modellerini ifade etmek için de kullanılabilir , bu nedenle bir onaltılık basamak dizisi, işaretli veya hatta kayan nokta değerini temsil edebilir . Bu şekilde, negatif sayı −42 10 , 32-bit CPU kaydında FFFF FFD6 olarak ( ikinin tamamlayıcısında ), 32-bit FPU kaydında C228 0000 veya 64-bit FPU'da C045 0000 0000 0000 olarak yazılabilir. register ( IEEE kayan nokta standardında ).

Onaltılık üstel gösterim

Ondalık sayılar nasıl üstel gösterimde gösterilebiliyorsa , onaltılık sayılar da aynı şekilde gösterilebilir. Geleneksel olarak, P harfi (veya "kuvvet" için p , 'nin kuvvetine yükseltilmiş iki çarpımı temsil eder , oysa E (veya e ), E gösteriminin bir parçası olarak ondalık olarak benzer bir amaca hizmet eder . Sonra sayı P olan ondalık ve temsil ikili üs. Üssü 1 ile artırmak, 16 ile değil 2 ile çarpar. 10.0p1 = 8.0p2 = 4.0p3 = 2.0p4 = 1.0p5. Genellikle sayı, baştaki onaltılık basamak 1 olacak şekilde normalleştirilir (değer tam olarak 0 değilse).

Örnek: 1.3DEp42, 1.3DE 16  × 2 42 10'u temsil eder .

IEEE 754-2008 ikili kayan nokta standardı tarafından onaltılık üstel gösterim gereklidir . Bu gösterim , C programlama dilinin C99 sürümündeki kayan nokta değişmezleri için kullanılabilir . Kullanımı % bir veya % bir dönüşüm belirteçleri, bu gösterimde uygulamalarında üretilebilir Printf C99 özellikleri ve aşağıdaki işlevleri etti Tek Unix Şartnamesi (IEEE Std 1003.1) POSIX standardı.

Dönüştürmek

İkili dönüştürme

Çoğu bilgisayar ikili verileri manipüle eder, ancak insanların nispeten küçük bir ikili sayı için bile çok sayıda basamakla çalışması zordur. Çoğu insan temel 10 sistemine aşina olmasına rağmen, ikiliyi onaltılıya eşlemek ondalık sayıya göre çok daha kolaydır çünkü her bir onaltılık basamak bir tam sayı (4 10 ) ile eşlenir . Bu örnek, 1111 2'yi taban on'a dönüştürür . İkili bir sayıdaki her konum ya 1 ya da 0 içerebildiğinden, değeri sağdan konumuna göre kolayca belirlenebilir:

  • 0001 2 = 1 10
  • 0010 2 = 2 10
  • 0100 2 = 4 10
  • 1000 2 = 8 10

Öyleyse:

1111 2 = 8 10 + 4 10 + 2 10 + 1 10
  = 15 10

Küçük bir pratikle, 1111 2'yi F 16'ya tek adımda eşleştirmek kolaylaşır: yazılı gösterimdeki tabloya bakın . Ondalık yerine onaltılık kullanmanın avantajı, sayının boyutuyla birlikte hızla artar. Sayı büyüdüğünde, ondalık sayıya dönüştürmek çok sıkıcıdır. Bununla birlikte, onaltılık ile eşleme yaparken, ikili dizgiyi 4 basamaklı gruplar olarak kabul etmek ve her birini tek bir onaltılık basamakla eşleştirmek önemsizdir.

Bu örnek, bir ikili sayının ondalık sayıya dönüştürülmesini, her basamağın ondalık değere eşlenmesini ve sonuçların eklenmesini gösterir.

(01011110101101010010) 2 = 262144 10 + 65536 10 + 32768 10 + 16384 10 + 8192 10 + 2048 10 + 512 10 + 256 10 + 64 10 + 16 10 + 2 10
  = 387922 10

Bunu, dört basamaklı her bir grubun bağımsız olarak değerlendirilebileceği ve doğrudan dönüştürülebildiği onaltılıya dönüştürmeyle karşılaştırın:

(01011110101101010010) 2 = 0101  1110  1011  0101  0010 2
  = 5 E B 5 2 16
  = 5EB52 16

Onaltılıdan ikiliye dönüşüm eşit derecede doğrudandır.

Diğer basit dönüşümler

Her ne kadar dördüncü (baz 4) az kullanıldığında, kolayca ve onaltılık veya ikili dönüştürülebilir. Her onaltılık basamak bir çift dörtlü basamağa karşılık gelir ve her dörtlü basamak bir çift ikili basamağa karşılık gelir. Yukarıdaki örnekte 5 E B 5 2 16 = 11 32 23 11 02 4 .

Sekizlik (baz 8) Sistem, aynı zamanda bazlarla 2 ve üç ikili rakam, dört yerine 4. Her bir sekizlik rakamdır tekabül ile olarak oldukça trivially da, göreli kolaylıkla dönüştürülebilir. Bu nedenle, ikili sayıya bir ara dönüştürme ve ardından ikili rakamları üç veya dörtlü gruplar halinde yeniden gruplandırma yoluyla sekizli ve onaltılı sayılar arasında dönüştürme yapabiliriz.

Kaynak tabanında bölüm-kalan

Tüm tabanlarda olduğu gibi, kaynak tabanda tamsayı bölme ve kalan işlemleri yaparak bir sayının temsilini onaltılık sayıya dönüştürmek için basit bir algoritma vardır . Teoride, bu herhangi bir tabandan mümkündür, ancak çoğu insan için yalnızca ondalık sayı ve çoğu bilgisayar için yalnızca ikili (çok daha verimli yöntemlerle dönüştürülebilen) bu yöntemle kolayca işlenebilir.

Onaltılık olarak temsil edilecek sayı d olsun ve h i h i−1 ...h 2 h 1 serisi sayıyı temsil eden onaltılık basamaklar olsun.

  1. ben ← 1
  2. h ben ← d mod 16
  3. d ← (d − h ben ) / 16
  4. d = 0 (dönüş serisi h i ) ise, i'yi artırın ve 2. adıma gidin

"16" istenebilecek herhangi bir başka baz ile değiştirilebilir.

Aşağıda, herhangi bir sayıyı Dize gösteriminde onaltılık bir sayıya dönüştürmek için yukarıdaki algoritmanın bir JavaScript uygulaması yer almaktadır. Amacı, yukarıdaki algoritmayı göstermektir. Bununla birlikte, verilerle ciddi şekilde çalışmak için, bitsel operatörlerle çalışmak çok daha tavsiye edilir .

function toHex(d) {
  var r = d % 16;
  if (d - r == 0) {
    return toChar(r);
  }
  return toHex((d - r) / 16) + toChar(r);
}

function toChar(n) {
  const alpha = "0123456789ABCDEF";
  return alpha.charAt(n);
}

Toplama ve çarpma yoluyla dönüştürme

Onaltılık çarpım tablosu

Son gösterimi elde etmek için çarpma ve toplama yapmadan önce, kaynak tabanındaki her bir yere basamak değerinin onaltılık gösterimini atayarak dönüştürme yapmak da mümkündür. Örneğin, B3AD sayısını ondalık sayıya dönüştürmek için, onaltılık sayı basamaklarına bölünebilir: B (11 10 ), 3 (3 10 ), A (10 10 ) ve D (13 10 ) ve ardından sonuncusu alınabilir. her ondalık gösterimi 16 p ile çarparak elde edilen sonuç ( p , karşılık gelen onaltılık basamak konumudur, sağdan sola doğru sayılır, 0 ile başlar). Bu durumda, elimizde:

B3AD = (11 × 16 3 ) + (3 × 16 2 ) + (10 × 16 1 ) + (13 × 16 0 )

bu, 10 tabanında 45997'dir.

Dönüştürme araçları

Grafik kullanıcı arabirimlerine sahip modern bilgisayar sistemlerinin çoğu , çeşitli kökler arasında dönüştürme yapabilen yerleşik bir hesap makinesi yardımcı programı sağlar ve çoğu durumda onaltılık sayıyı da içerir.

Gelen Microsoft Windows , Hesaplama yarar tabanda 16 (onaltılık), 10 (ondalık), 8 (arasındaki dönüşümleri verir (bazı sürümlerde Programcı modu olarak adlandırılır) Bilimsel modunda ayarlanabilir sekizlik ) ve 2 ( ikili en) üsleri programcılar tarafından yaygın olarak kullanılır. Bilimsel Modda, ekrandaki sayısal tuş takımı , "Onaltılı" seçildiğinde etkin olan A'dan F'ye kadar olan onaltılık rakamları içerir. Ancak onaltılı modda, Windows Hesap Makinesi yalnızca tam sayıları destekler.

temel aritmetik

Toplama, çıkarma, çarpma ve bölme gibi temel işlemler , yaygın olarak kullanılan ondalık sistem veya her bir onaltılık basamağın dört ikili basamağa karşılık geldiği ikili sistem gibi alternatif bir sayı sistemine dönüştürme yoluyla dolaylı olarak gerçekleştirilebilir .

Alternatif olarak, toplama/çarpma tablolarına ve uzun bölme ve geleneksel çıkarma algoritması gibi karşılık gelen standart algoritmalarına güvenerek, temel işlemleri doğrudan hex sisteminin içinde de gerçekleştirebilirsiniz .

Gerçek sayılar

Rasyonel sayılar

Diğer sayı sistemlerinde olduğu gibi, on altı (10 16 ) yalnızca tek bir asal faktöre sahip olduğundan , tekrar eden açılımlar yaygın olsa da , onaltılık sistem rasyonel sayıları temsil etmek için kullanılabilir ; 2.

Herhangi bir taban için 0,1 (veya "1/10") her zaman bire bölünerek o taban değerin kendi sayı sistemindeki temsiline eşittir. Böylece, ister ikili için ikiye bölünsün, ister onaltılık için bire bölünsün, bu kesirlerin her ikisi de olarak yazılır 0.1. Radix 16 bir tam kare (4 2 ) olduğundan, onaltılı olarak ifade edilen kesirler, ondalık kesirlerden çok daha sık tek bir periyoda sahiptir ve döngüsel sayılar yoktur (önemsiz tek basamaklar dışında). En düşük terimlerdeki payda , sayı tabanında bulunmayan bir asal çarpana sahip olduğunda, yinelenen rakamlar görüntülenir ; bu nedenle, onaltılık gösterim kullanılırken, paydaları ikinin kuvveti olmayan tüm kesirler, sonsuz bir yinelenen basamak dizisi (üçler ve beşinciler gibi) ile sonuçlanır. Bu, daha büyük bir oran sonlu temsil aralığının dışında kaldığından, onaltılık (ve ikili) rasyonel sayıları temsil etmek için ondalık sayıdan daha az uygun hale getirir .

Onaltılık olarak sonlu olarak gösterilebilen tüm rasyonel sayılar, ondalık, on ikilik ve altmışlık olarak da sonlu olarak gösterilebilir : yani, sonlu sayıda basamağa sahip herhangi bir onaltılık sayı, bu diğer tabanlarda ifade edildiğinde de sonlu sayıda basamağa sahiptir. Tersine, son tabanlarda sonlu olarak temsil edilebilenlerin yalnızca bir kısmı onaltılı olarak sonlu olarak temsil edilebilir. Örneğin, ondalık 0,1 , onaltılık biçimde 0,1 9 sonsuz yinelenen gösterime karşılık gelir . Bununla birlikte, onaltılık, paydada iki kuvvete sahip kesirleri temsil etmek için onikilik ve altmışlıktan daha etkilidir. Örneğin, 0,0625 10 (on altıda bir), 0,1 16 , 0,09 12 ve 0;3,45 60'a eşittir .

n
Tabanın Ondalık Asal çarpanları, b = 10: 2 , 5 ; b − 1 = 9: 3 ; b+1 = 11:11
Onaltılı
Tabanın asal çarpanları, b = 16 10 = 10: 2 ; b − 1 = 15 10 = F: 3, 5 ; b+1 = 17 10 = 11: 11
kesir asal faktörler konumsal temsil konumsal temsil asal faktörler Kesir(1/n)
2 1/2 2 0,5 0,8 2 1/2
3 1/3 3 0, 3333... = 0, 3 0. 5555 ... = 0. 5 3 1/3
4 1/4 2 0.25 0,4 2 1/4
5 1/5 5 0,2 0. 3 5 1/5
6 1/6 2 , 3 0.1 6 0,2 A 2 , 3 1/6
7 1/7 7 0. 142857 0. 249 7 1/7
8 1/8 2 0.125 0,2 2 1/8
9 1/9 3 0. 1 0. 1C7 3 1/9
10 1/10 2 , 5 0.1 0.1 9 2 , 5 1 A
11 1/11 11 0. 09 0. 1745D B 1/B
12 1/12 2 , 3 0.08 3 0.1 5 2 , 3 1/C
13 1/13 13 0. 076923 0. 13B NS 1/B
14 1/14 2 , 7 0.0 714285 0.1 249 2 , 7 1/D
15 1/15 3 , 5 0.0 6 0. 1 3 , 5 1/F
16 1/16 2 0.0625 0.1 2 1/10
17 1/17 17 0. 0588235294117647 0, 0F 11 1/11
18 1/18 2 , 3 0.0 5 0.0 E38 2 , 3 1/12
19 1/19 19 0. 052631578947368421 0 0D79435E5 13 1/13
20 1/20 2 , 5 0.05 0,0 C 2 , 5 1/14
21 1/21 3 , 7 0. 047619 0. 0C3 3 , 7 1/15
22 1/22 2 , 11 0.0 45 0.0 BA2E8 2 , B 1/16
23 1/23 23 0. 0434782608695652173913 0 0B21642C859 17 1/17
24 1/24 2 , 3 0.041 6 0,0 A 2 , 3 1/18
25 1/25 5 0.04 0. 0A3D7 5 1/19
26 1/26 2 , 13 0.0 384615 0.0 9D8 2 , D 1/1A
27 1/27 3 0, 037 0. 097B425ED 3 1/1B
28 1/28 2 , 7 0.03 571428 0.0 924 2 , 7 1/1C
29 1/29 29 0. 0344827586206896551724137931 0. 08D3DCB 1B 1/1D
30 1/30 2 , 3 , 5 0.0 3 0.0 8 2 , 3 , 5 1/1E
31 1/31 31 0. 032258064516129 0 08.421 1F 1/1F
32 1/32 2 0.03125 0.08 2 1/20
33 1/33 3 , 11 0. 03 0. 07C1F 3 , B 1/21
34 1/34 2 , 17 0.0 2941176470588235 0.0 78 2 , 11 1/22
35 1/35 5 , 7 0.0 285714 0, 075 5 , 7 1/23
36 1/36 2 , 3 0.02 7 0.0 71C 2 , 3 1/24

İrrasyonel sayılar

Aşağıdaki tablo, bazı yaygın irrasyonel sayıların ondalık ve onaltılık olarak açılımlarını vermektedir .

Sayı konumsal temsil
Ondalık onaltılık
2 ( birim karenin köşegen uzunluğu ) 1.414 213 562 373 095 048 ... 1.6A09E667F3BCD...
3 (birim küpün köşegen uzunluğu ) 1.732 050 807 568 877 293 ... 1.BB67AE8584CAA...
5 ( 1×2 dikdörtgenin köşegen uzunluğu ) 2.236 067 977 499 789 696 ... 2.3C6EF372FE95...
φ (phi, altın oran = (1+ 5 )/2 ) 1.618 033 988 749 894 848 ... 1.9E3779B97F4A...
π (p, ve oranı çevresi için çapı dairenin) 3.141 592 653 589 793 238 462 643
383 279 502 884 197 169 399 375 105 ...
3.243F6A8885A308D313198A2E0
3707344A4093822299F31D008...
e ( doğal logaritmanın tabanı ) 2.718 281 828 459 045 235 ... 2.B7E151628AED2A6B...
τ ( Thue-Mors sabiti ) 0.412 454 033 640 107 597 ... 0.6996 9669 9669 6996...
γ (
harmonik seri ile doğal logaritma arasındaki sınırlayıcı fark )
0.577 215 664 901 532 860 ... 0.93C467E37DB0C7A4D1B...

güçler

İkinin kuvvetlerinin onaltılı olarak çok basit açılımları vardır. İkinin ilk on altı kuvveti aşağıda gösterilmiştir.

2 x Değer Değer (Ondalık)
2 0 1 1
2 1 2 2
2 2 4 4
2 3 8 8
2 4 10 altıgen 16 aynşma
2 5 20 altıgen 32 aralık
2 6 40 altıgen 64 Aralık
2 7 80 altıgen 128 Aralık
2 8 100 altıgen 256 aralık
2 9 200 altıgen 512 aralık
2 A (2 10 ayrışma ) 400 altıgen 1024 Aralık
2 B (2 11 ayrışma ) 800 altıgen 2048 Aralık
2 ° C (2 12 ayrışma ) 1000 altıgen 4096 Aralık
2 Boyutlu (2 13 Aralık ) 2000 altıgen 8192 Aralık
2 E (2 14 ayrışma ) 4000 altıgen 16.384 Aralık
2 F (2 15 ayrışma ) 8000 altıgen 32.768 aralık
2 10 (2 16 ayrışma ) 10000 altıgen 65.536 Aralık

Kültürel tarih

Geleneksel Çin ölçü birimleri 16 tabanlıydı. Örneğin, eski sistemde bir jin (斤) on altı eşit taels . Suanpan (Çin Abacus ) bu tür ilaveler ve çıkarmalar olarak onaltılık hesaplamaları gerçekleştirmek için kullanılabilir.

Gibi onikili sistemi, tercih edilen referans numarası sistem olarak onaltılık teşvik etmek için zaman zaman girişimler olmuştur. Bu girişimler genellikle bireysel sayılar için özel telaffuz ve semboller önerir. Bazı öneriler onlar 16. An katları erken Böyle bir teklif tarafından ortaya atılmıştır böylece standart önlemler birleştirmek John W. Nystrom içinde Sixteen ile, Ton Sistemi çağrılacak Önerilen: Aritmetik, Ağırlık Yeni Bir Sisteminin Projesi ölçün ve paralar 1862'de yayınlanan Base'e . Nystrom, diğer şeylerin yanı sıra , bir günü 16'ya bölen onaltılı zaman önerdi , böylece bir günde 16 "saat" (veya "10 tims ", tontim olarak telaffuz edilir ) var.

Sözcük onaltılık ilk Öyle 1952 yılında kaydedilen macaronic o birleştirir anlamında Yunanca ile ἕξ (onaltılık) "altı" Latin kökenli -Ondalık . Bütün Latin alternatif sexadecimal (kelime karşılaştırmak sexagesimal tabanı 60 için) eski ve 19. yüzyıldan kalma en sıra kullanım az görür. 1950'lerde Bendix belgelerinde hala kullanılmaktadır . Schwartzman (1994) , seks anlamına gelen kısaltması nedeniyle seksenli sayının kullanılmasından kaçınılmış olabileceğini savunuyor . 1960'lardan bu yana birçok batı dilleri için oluşumunda eşdeğer terimleri benimsedik onaltılık (Fransızca örn onaltılık , İtalyan esadecimale , Romen hexazecimal , Sırp хексадецимални , vb) ama diğerleri hangi "on altı" (örneğin Yunan δεκαεξαδικός, İzlandaca için yedek yerli kelimeleri terimleri girmiştik sextándakerfi , Rusça шестнадцатеричной vs.)

Terminoloji ve gösterim 1960'ların sonuna kadar yerleşmedi. 1969'da Donald Knuth , etimolojik olarak doğru terimin yaşlılık veya muhtemelen yerleşik , ikili , üçlü ve dörtlü vb. üzerine modellenen "16'ya göre gruplandırılmış" bir Latince terim olacağını savundu. Knuth'un argümanına göre, ondalık ve sekizlik için doğru terimler aritmetik olurdu denary ve octonary sırasıyla. Alfred B. Taylor , 1800'lerin ortalarında alternatif sayı tabanları üzerinde yaptığı çalışmalarda yaşlılığı kullandı , ancak 16 tabanını "rahatsız rakam sayısı" nedeniyle reddetti.

A'dan F'ye harfleri kullanan şu anda geçerli olan gösterim , (Fortran'ın önceki türevlerinden farklı olarak) bir standardı tanıyan IBM System/360 için Fortran IV kılavuzunun yayınlanmasının ardından, 1966'da başlayan fiili standart olarak kendini kurar. onaltılık sabitleri girmek için. Yukarıda belirtildiği gibi, NEC (1960) ve The Pacific Data Systems 1020 (1964) tarafından alternatif gösterimler kullanılmıştır . IBM tarafından benimsenen standart, Bruce Alan Martin'in CACM editörüne yazdığı mektupta şikayet ettiği 1968 yılına kadar geniş çapta benimsenmiş görünüyor.

Onaltılık sayı sembolleri olarak A, B, C, D, E, F harflerinin gülünç seçimi, sekizli (veya onaltılı) sayıları ondalık sayılardan (veya değişken adlarından) ayırmanın zaten zahmetli sorunlarına eklendiğinde, yeniden düşünmek için zaman çok geçti. Bu, kötü seçimler fiili bir standarda dönüşmeden önce yapılmalıydı!"

Martin'in argümanı, ondalık olmayan sayılarda 0'dan 9'a kadar olan sayıların kullanılmasının "bizim için on tabanlı bir basamak değeri şeması anlamına geldiği"ydi: "Sekilik veya onaltılık sayılarda ihtiyaç duyulan yedi veya on beş sıfırdan farklı basamak için neden tamamen yeni semboller (ve adlar) kullanmıyorsunuz? A'dan P'ye kadar olan harflerin kullanılması bile bir gelişme olabilir, ancak tamamen yeni semboller sistemin ikili yapısını yansıtabilir".


Base16 (aktarım kodlaması)

Base16 ( boşluksuz özel ad olarak), Base32 , Base58 ve Base64 ile aynı aileye ait bir ikili metin kodlamasına da atıfta bulunabilir .

Bu durumda, veriler 4 bitlik dizilere bölünür ve her bir değer (0 ile 15 arasında dahil) ASCII karakter kümesinden 16 sembol kullanılarak kodlanır . ASCII karakter setinden herhangi 16 sembol kullanılabilse de, pratikte ASCII rakamları '0'–'9' ve 'A'–'F' harfleri (veya küçük harf 'a'–'f') her zaman seçilir. onaltılık sayılar için standart yazılı gösterimle hizalamak için.

Base16 kodlamasının çeşitli avantajları vardır:

  • Çoğu programlama dili, ASCII kodlu onaltılık sayıyı ayrıştırmak için zaten olanaklara sahiptir.
  • Tam olarak yarım bayt olan 4 bitin işlenmesi, sırasıyla 5 veya 6 bit Base32 ve Base64'ten daha kolaydır.
  • 0-9 ve AF sembolleri onaltılık gösterimde evrenseldir, bu nedenle bir sembol arama tablosuna ihtiyaç duymadan bir bakışta kolayca anlaşılabilir
  • Pek çok CPU mimarisinde, yarım bayta erişime izin veren özel yönergeler bulunur (aksi halde " nibble " olarak da bilinir ), bu da onu donanımda Base32 ve Base64'ten daha verimli hale getirir.

Base16 kodlamasının ana dezavantajları şunlardır:

  • Orijinal verilerden gelen her 4 bitlik değer 8 bitlik bir bayt olarak kodlanacağından, alan verimliliği yalnızca %50'dir. Buna karşılık, Base32 ve Base64 kodlamaları sırasıyla %63 ve %75'lik bir alan verimliliğine sahiptir.
  • Hem büyük hem de küçük harfleri kabul etmek zorunda kalmanın olası ek karmaşıklığı

Base16 kodlama desteği, modern bilgi işlemde her yerde bulunur. Bu, bir karakterin bir yüzde işareti "%" ile değiştirildiği ve bunun Base16 kodlu biçimiyle URL yüzde kodlaması için W3C standardının temelidir . Çoğu modern programlama dili, doğrudan Base16 kodlu sayıları biçimlendirme ve ayrıştırma desteği içerir.

Ayrıca bakınız

Referanslar