Jump to content

Nibble

From Wikipedia, the free encyclopedia
(Redirected fromNibble (computing))

Anoctetcode page 866font table ordered by nibbles.

Incomputing,anibble[1](occasionallynybble,nyble,ornyblto match the spelling ofbyte) is a four-bitaggregation,[1][2][3]or half anoctet.It is also known ashalf-byte[4]ortetrade.[5][6]In anetworkingortelecommunicationcontext, the nibble is often called asemi-octet,[7]quadbit,[8]orquartet.[9][10]A nibble has sixteen (24) possible values. A nibble can be represented by a singlehexadecimaldigit(0F) and called ahex digit.[11]

A fullbyte(octet) is represented by two hexadecimal digits (00FF); therefore, it is common to display a byte of information as two nibbles. Sometimes the set of all256-byte values is represented as a16×16table, which gives easily readable hexadecimal codes for each value.

Four-bit computer architecturesuse groups of four bits as their fundamental unit. Such architectures were used in earlymicroprocessors,pocket calculatorsandpocket computers.They continue to be used in somemicrocontrollers.In this context, 4-bit groups were sometimes also calledcharacters[12]rather than nibbles.[1]

History[edit]

The termnibbleoriginates from its representing "half a byte", withbyteahomophoneof theEnglishwordbite.[4]In 2014, David B. Benson, a professor emeritus atWashington State University,remembered that he playfully used (and may have possibly coined) the termnibbleas "half a byte" and unit of storage required to hold abinary-coded decimal(BCD) digit around 1958, when talking to a programmer fromLos Alamos Scientific Laboratory.The alternative spellingnybblereflects the spelling ofbyte,as noted in editorials ofKilobaudandBytein the early 1980s. Another early recorded use of the termnybblewas in 1977 within the consumer-banking technology group at Citibank. It created a pre-ISO 8583standard for transactional messages betweencash machinesand Citibank'sdata centersthat used the basic data unit 'nabble'.

Nibbleis used to describe the amount of memory used to store a digit of a number stored inpacked decimal format(BCD) within an IBM mainframe. This technique is used to make computations faster and debugging easier. An 8-bit byte is split in half and each nibble is used to store one decimal digit. The last (rightmost) nibble of the variable is reserved for the sign. Thus a variable which can store up to nine digits would be "packed" into 5 bytes. Ease of debugging resulted from the numbers’ being readable in ahex dumpwhere twohexnumbers are used to represent the value of a byte, as16×16 = 28.For example, a five-byte BCD value of314159265Crepresents a decimal value of +314159265.

Historically, there are cases wherenybblewas used for a group of bits greater than 4. In theApple II microcomputer line,much of the disk drive control andgroup-coded recordingwas implemented in software. Writing data to a disk was done by converting 256-byte pages into sets of5-bit(later,6-bit) nibbles and loading disk data required the reverse.[13][14][15]Moreover, 1982 documentation for theIntegrated Woz Machinerefers consistently to an "8 bit nibble".[16]The termbyteonce had the same ambiguity and meant a set of bits but not necessarily 8, hence the distinction ofbytesandoctetsor ofnibblesandquartets(orquadbits). Today, the termsbyteandnibblealmost always refer to 8-bit and 4-bit collections respectively and are very rarely used to express any other sizes.

Binary and hexadecimal representation[edit]

A nibble can be represented in binary and hexadecimal as follows:

Binary vs Decimal vs Hexadecimal
Binary Decimal Hexadecimal
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F

Low and high nibbles[edit]

The termslow nibbleandhigh nibbleare used to denote the nibbles containing, respectively, the less significant bits and the more significant bits within a byte. In graphical representations of bits within a byte, the leftmost bit could represent the most significant bit (MSB), corresponding to ordinary decimal notation in which the digit at the left of a number is the most significant. In such illustrations the four bits on the left end of the byte form the high nibble, and the remaining four bits form the low nibble.[17]For example,

ninety-seven = 9710= (0110 0001)2= 61hex

the high nibble is01102(6hex), and the low nibble is00012(1hex). The total value ishigh-nibble × 1610+ low-nibble(6 × 16 + 1 = 9710).

Extracting a nibble from a byte[edit]

A nibble can be extracted from a byte by doing abitwise logical ANDoperation and optionally abit shiftdepending on if the high or low nibble is to be extracted.

InC:

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

wherebmust be a variable or constant of anintegral data type,and only the least-significant byte ofbis used.

For example,HI_NIBBLE(0xAB)==0xAandLO_NIBBLE(0xAB)==0xB.

InCommon Lisp:

(defunhi-nibble(b)
(ldb(byte44)b))
(defunlo-nibble(b)
(ldb(byte40)b))

See also[edit]

References[edit]

  1. ^abcRaphael, Howard A., ed. (November 1974)."The Functions Of A Computer: Instruction Register And Decoder"(PDF).MCS-40 User's Manual For Logic Designers.Santa Clara, California, USA:Intel Corporation.p. viii.Archived(PDF)from the original on 2020-03-03.Retrieved2020-03-03.[...] The characteristic eightbitfield is sometimes referred to as abyte,a four bit field can be referred to as a nibble. [...]
  2. ^Hall, Douglas V. (1980).Microprocessors and Digital Systems.McGraw-Hill.ISBN0-07-025571-7.
  3. ^Warren Jr., Henry S. (2013) [2002].Hacker's Delight(2 ed.).Addison WesleyPearson Education, Inc.ISBN978-0-321-84268-8.0-321-84268-5.
  4. ^abRaymond, Eric S.(1996).The New Hacker's Dictionary.MIT Press.p. 333.ISBN978-0-262-68092-9.
  5. ^Carr, John W.Introduction to the use of digital computers: Notes from the Summer Conference Held at the Computation Center of the University of North Carolina, Chapel Hill, N.C., August 17-28, 1959.Frontier Research on Digital Computers. Vol. 1.University of North Carolinaat Chapel Hill, Computation Center. p. 211.Each of these letters corresponds to one of the integers from zero to fifteen, therefore requiring 4 bits (one "tetrade" ) in binary representation.
  6. ^Speiser, Ambrosius Paul(1965) [1961].Digitale Rechenanlagen – Grundlagen / Schaltungstechnik / Arbeitsweise / Betriebssicherheit[Digital computers – Basics / Circuits / Operation / Reliability] (in German) (2 ed.).ETH Zürich,Zürich, Switzerland:Springer-Verlag/IBM.pp. 6, 34, 165, 183, 208, 213, 215.LCCN65-14624.0978.
  7. ^Puzman, Josef; Kubin, Boris (2012).Public Data Networks: From Separate PDNs to the ISDN.Springer Science+Business Media.p. 113.ISBN978-1-4471-1737-7.
  8. ^Horak, Ray (2007).Webster's New World Telecom Dictionary.John Wiley & Sons.p. 402.ISBN978-0-470-22571-4.
  9. ^Brewster, Ronald L. (1994).Data Communications and Networks, Vol. III.IEE telecommunications series. Vol. 31.Institution of Electrical Engineers.p. 155.ISBN978-0-85296-804-8.A data symbol represents one quartet (4 bits) of binary data.
  10. ^Courbis, Paul;Lalande, Sébastien (2006-06-27) [1989].Voyage au centre de la HP28c/s(in French) (2 ed.). Paris, France: Editions de la Règle à Calcul.OCLC636072913.Archivedfrom the original on 2016-08-06.Retrieved2015-09-06.[1][2][3][4][5][6]
  11. ^Heller, Steve (1997).Introduction to C++.Morgan Kaufmann.p. 27.ISBN978-0-12-339099-8.Each hex digit (0–f) represents exactly 4 bits.
  12. ^"Terms And Abbreviations"(PDF).MCS-4 Assembly Language Programming Manual – The INTELLEC 4 Microcomputer System Programming Manual(Preliminary ed.). Santa Clara, California, USA:Intel Corporation.December 1973. pp. v, 2-6. MCS-030-1273-1.Archived(PDF)from the original on 2020-03-01.Retrieved2020-03-02.[...]Bit– The smallest unit of information which can be represented. (A bit may be in one of two states I 0 or 1). [...]Byte– A group of 8 contiguous bits occupying a single memory location. [...]Character– A group of 4 contiguous bits of data. [...](NB. ThisIntel 4004manual uses the termcharacterreferring to4-bitrather than 8-bitdataentities. Intel switched to use the more common termnibblefor 4-bit entities in their documentation for the succeeding processor4040in 1974 already.)
  13. ^Worth, Don D.; Lechner, Pieter M. (May 1982) [1981].Beneath Apple DOS(4th printing, 1st ed.). Reseda, California, USA:Quality Software.Retrieved2017-03-21.[7][8][9]Archived9 March 2016 at theWayback Machine
  14. ^Worth, Don D.; Lechner, Pieter M. (March 1985) [1984].Beneath Apple ProDOS – For Users of Apple II Plus, Apple IIe and Apple IIc Computers(PDF)(2nd printing, 1st ed.). Chatsworth, California, USA:Quality Software.ISBN0-912985-05-4.LCCN84-61383.Archived(PDF)from the original on 2017-03-21.Retrieved2017-03-21.[10]
  15. ^Copy II Plus Version 9 – ProDOS/DOS Utilities – Data Recovery, File Management, Protected Software Backup(PDF).9.0.Central Point Software, Inc.1989-10-31 [1982]. Archived fromthe original(PDF)on 2017-05-07.Retrieved2017-03-21.
  16. ^Apple Computer, Inc.(February 1982) [1978].Integrated Woz Machine (IWM) Specification(PDF)(19 ed.). DigiBarn Computer Museum.Archived(PDF)from the original on 2016-08-06.Retrieved2016-08-06.
  17. ^Baccala, Brent (April 1997)."Binary arithmetic".Connected: An Internet Encyclopedia(3rd ed.).Archivedfrom the original on 2016-08-06.Retrieved2015-07-20.

External links[edit]