kemirmek - Nibble

Nibbles tarafından sıralanmış bir sekizli kod sayfası 866 yazı tipi tablosu.

Olarak işlem , bir yarım bayt (bazen Nybble veya nyble yazımını eşleşecek şekilde bayt ) bir dört olan bit agregasyonu veya yarım sekizli . Yarım bayt veya tetrat olarak da bilinir . Bir veya telekomünikasyon bağlamında , kemirmeye genellikle yarı sekizli , dörtlü veya dörtlü denir . Bir kemirmenin on altı ( 2 4 ) olası değeri vardır. Bir kemirme, tek bir onaltılık basamakla ( – ) temsil edilebilir ve onaltılık basamak olarak adlandırılabilir . 0F

Tam bir bayt (sekizli) iki onaltılık basamakla ( 00FF) temsil edilir ; bu nedenle, bir bayt bilgiyi iki küçük parça olarak görüntülemek yaygındır. Bazen tüm 256 baytlık değerler kümesi, her değer için kolayca okunabilen onaltılık kodlar veren 16×16 tablo olarak temsil edilir .

Dört bitlik bilgisayar mimarileri , temel birimleri olarak dört bitlik grupları kullanır. Bu tür mimariler erken mikroişlemcilerde , cep hesaplayıcılarında ve cep bilgisayarlarında kullanıldı . Bazı mikrodenetleyicilerde kullanılmaya devam etmektedirler . Bu bağlamda, 4 bitlik gruplara bazen nibble yerine karakter de deniyordu .

Tarih

Kemirme terimi , "yarım bayt" ı temsil etmesinden kaynaklanmaktadır ve bayt , İngilizce ısırma kelimesinin bir eşseslisidir . 2014 yılında, Washington Eyalet Üniversitesi'nde fahri profesör olan David B. Benson, nibble terimini "yarım bayt" ve ikili kodlu bir ondalık sayıyı tutmak için gereken depolama birimi olarak şakacı bir şekilde kullandığını (ve muhtemelen uydurmuş olabileceğini) hatırladı ( BCD) Los Alamos Bilimsel Laboratuvarı'nın bir programcısı ile konuşurken 1958 civarında ondalık basamak . Alternatif yazım nybble yazımını yansıtan byte arasında başyazarların belirtildiği gibi, kilobaud ve Byte 1980'lerin başında. Nybble teriminin bir başka erken kaydedilen kullanımı, 1977'de Citibank'taki tüketici bankacılığı teknoloji grubu içindeydi . Bu bir ön oluşturulmuş , ISO 8583 arasında işlem iletileri için standart para çekme makineleri ve Citibank'in veri merkezlerinde temel bilgilendirme birimi 'Nabble'a' kullandı.

Nibble, bir IBM anabilgisayarında paketlenmiş ondalık biçimde (BCD) saklanan bir sayının bir basamağını depolamak için kullanılan bellek miktarını tanımlamak için kullanılır . Bu teknik, hesaplamaları daha hızlı yapmak ve hata ayıklamayı kolaylaştırmak için kullanılır. 8 bitlik bir bayt yarıya bölünür ve her bir nibble bir ondalık basamağı saklamak için kullanılır. Değişkenin son (en sağdaki) ucu işaret için ayrılmıştır. Böylece dokuz basamağa kadar depolayabilen bir değişken 5 bayta "paketlenir". 16×16 = 2 8 olarak bir bayt değerini temsil etmek için iki onaltılık sayının kullanıldığı bir onaltılık dökümde sayıların okunabilir olmasından kaynaklanan hata ayıklama kolaylığı . Örneğin, beş baytlık bir BCD değeri, ondalık bir değerini temsil eder . 31 41 59 26 5C+314159265

Tarihsel olarak, 4'ten büyük bir bit grubu için nybble'ın kullanıldığı durumlar vardır. Apple II mikrobilgisayar hattında , disk sürücüsü kontrolünün ve grup kodlu kaydın çoğu yazılımda uygulanmıştır. Bir diske veri yazmak, 256 baytlık sayfaların 5 bitlik (daha sonra 6 bitlik ) parça kümelerine dönüştürülmesiyle yapıldı ve disk verilerinin yüklenmesi bunun tersini gerektiriyordu. Ayrıca, Entegre Woz Makinesi için 1982 belgeleri, tutarlı bir şekilde "8 bitlik bir kemirmeye" atıfta bulunur. Terimi, bayt kez dolayısıyla fark, ille 8 aynı belirsizlik vardı ve anlamına bitleri kümesi ancak bayt ve sekizli veya yarım bayt ve kuartet (veya quadbits ). Bugün, bayt ve nibble terimleri neredeyse her zaman sırasıyla 8-bit ve 4-bit koleksiyonları ifade eder ve diğer boyutları ifade etmek için çok nadiren kullanılır.

yemek masası

On altı kemirgen ve diğer sayı sistemlerindeki eşdeğerleri:

Örnekler
İkili onaltılık
0000 0100 0010 0 4 2
0010 1010 1001 2 A 9
0010 0000 1001 2 0 9
1110 0100 1001 E 4 9
0011 1001 0110 3 9 6
0001 0000 0001 1 0 1
0011 0101 0100 3 5 4
0001 0110 0100 1 6 4
0 altıgen = 0 Aralık = 0 ekim 0 0 0 0
1 altıgen = 1 aralık = 1 ekim 0 0 0 1
2 altıgen = 2 aynşma = 2 ekim 0 0 1 0
3 altıgen = 3 ayrışma = 3 ekim 0 0 1 1
4 altıgen = 4 aralık = 4 ekim 0 1 0 0
5 altıgen = 5 aralık = 5 ekim 0 1 0 1
6 altıgen = 6 aralık = 6 ekim 0 1 1 0
7 altıgen = 7 aynşma = 7 ekim 0 1 1 1
8 altıgen = 8 aynşma = 10 ekim 1 0 0 0
9 altıgen = 9 aynşma = 11 ekim 1 0 0 1
bir altıgen = 10 aralık = 12 ekim 1 0 1 0
B altıgen = 11 aralık = 13 ekim 1 0 1 1
C altıgen = 12 aralık = 14 ekim 1 1 0 0
D altıgen = 13 aynşma = 15 ekim 1 1 0 1
E altıgen = 14 aynşma = 16 ekim 1 1 1 0
F altıgen = 15 aynşma = 17 ekim 1 1 1 1

Düşük ve yüksek nibbles

Terimleri , düşük yarım bayt ve yüksek yarım bayt bir bayt içindeki sırasıyla ihtiva eden yarım bayt, daha az önemli bit ve daha anlamlı bit göstermek için kullanılır. Bir bayt içindeki bitlerin grafik gösterimlerinde, en soldaki bit , bir sayının solundaki basamağın en anlamlı olduğu sıradan ondalık gösterime karşılık gelen en anlamlı biti ( MSB ) temsil edebilir . Bu tür çizimlerde baytın sol ucundaki dört bit yüksek kemirmeyi, kalan dört bit ise düşük kemirmeyi oluşturur. Örneğin,

doksan yedi = 97 10 = (0110 0001) 2 = 61 altıgen

yüksek kemirme 0110 2 ( 6 hex ) ve düşük kemirme 0001 2'dir ( 1 hex ). Toplam değer yüksek kemirgen × 16 10 + düşük kemirgendir ( 6 × 16 + 1 = 97 10 ).

Bir bayttan bir nibble çıkarma

Bit düzeyinde mantıksal AND işlemi ve isteğe bağlı olarak, yüksek veya düşük kemirmenin çıkarılmasına bağlı olarak bir bit kaydırma yapılarak bir bayttan bir yarım bayt çıkarılabilir.

İçinde C :

#define HI_NIBBLE(b) (((b) >> 4) & 0x0F)
#define LO_NIBBLE(b) ((b) & 0x0F)

nerede bbir integral veri türünün bir değişkeni veya sabiti olmalıdır ve yalnızca en az anlamlı bayt bkullanılır.

Örneğin, HI_NIBBLE(0xAB)==0xAve LO_NIBBLE(0xAB)==0xB.

In Common Lisp :

(defun hi-nibble (b)
  (ldb (byte 4 4) b))
(defun lo-nibble (b)
  (ldb (byte 4 0) b))

Ayrıca bakınız

Referanslar

Dış bağlantılar