Binair, Decimaal & Hexadecimaal

5-polige DIN MIDI plugManieren om tot 256 te tellen.

Zie ook: bits & bytes

Calculator Binair, Hexadecimaal, Decimaal, Octaal, enz.

Een Trivial Pursuit vraag is: "Wie kan maar tot 1 tellen?". Het antwoord is dan: "De computer". Oh, oh, wat hebben we een lol. Het klopt niet eens, want zoals iedereen weet telt de computer veel en veel verder. Hij doet dat alleen op een andere manier dan mensen. De computer denkt in woordjes van enen en nullen. De samenstelling van de enen en nullen bepaalt de hoogte van het getal.

Een 1 of 0 heet een bit (BInary digiT). Acht van die bits samen in 1 woord heet een Byte (BinarY digiT Eight). In totaal zijn 256 verschillende combinaties mogelijk van acht enen en nullen. Wel eens vaker gezien dat getal 256? In een byte van 8 bits kun je dus van 1 tot 256 tellen (of van 0 tot 255). Verder tellen kan ook maar dan moet je meer bits gebruiken.

Omdat mensen het niet zo eenvoudig vinden om in termen als 1101 0111 te praten, 'vertalen' wij de computerbits meestal in ons oude vertrouwde tientallenstelsel. Daarnaast is er nog een andere telmethode in gebruik: hexadecimaal.

We onderscheiden oa.:

  • BINAIR -> kent twee stappen (van 0 tot en met 1)
  • OCTAAL -> kent 8 stappen (van 0 tot en met 7)
  • DECIMAAL -> kent 10 stappen (van 0 tot en met 9)
  • HEXADECIMAAL -> kent 16 stappen (van 0 tot en met F, na 9 wordt doorgenummerd met letters, te beginnen bij A)

Omdat het niet altijd goed te zien is of een getal decimaal of hexadecimaal is, wordt een hexadecimaal voorafgegaan door een $-teken of door een hoofdletter H. Het komt ook voor dat de $ of de H achter het hexadecimale getal staat. Wat daarnaast wel eens wordt gebruikt is de aanduiding HEX in hoofdletters, als afkorting van hexadecimaal.

Als je 10 ziet staan zonder aanduiding betekent dat het getal 10. Als je $10 of H10 of 10$ of 10H of 10HEX ziet staan, betekent dat niet 10 maar 16. Het is namelijk een hexadecimaal getal.

In het decimale stelsel is het als volgt: we tellen van 0 tot en met 9. Om verder te gaan dan die 9 gaan we de tientallen benoemen. Na 9 komt 10 en dat moet je eigenlijk lezen als: "1 tiental en nul eenheden". Decimaal is een tientallig stelsel.

Hexadecimaal is een zestientallig stelsel. Van 0 tot en met 16 tellen in hexadecimalen ziet er als volgt uit: $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $0A $0B $0C $0D $0E $0F $10. $10 betekent in dit geval: "1 zestiental en 0 eenheden". $0B betekent: "0 zestientallen en 11 eenheden". $20 hexadecimaal is dus gelijk aan 32 decimaal (twee zestientallen). Het hoogst mogelijke getal met tweecijferige hexadecimalen is $FF (vijftien zestientallen en vijftien eenheden: 15 x 16 + 15 = 255).

Voor de gangbare dagelijkse midi-toepassingen heb je al deze kennis over decimalen en hexadecimalen niet nodig. Anders wordt het als je aan de gang gaat met System Exclusive commando's. Midi Data Format lijsten van instrumenten zijn namelijk vaak in hexadecimalen opgesteld. Het komt ook voor dat in een Midi Data Format lijst zowel decimalen als hexadecimalen worden gebruikt. Het is dan zaak om goed op te letten dat je de twee stelsels niet door elkaar haalt.

Nog iets vervelender kan het worden als je hexadecimale getallen uit een Data List decimaal moet invoeren in een programma. Dan moet je de getallen dus converteren. Hier zijn gelukkig tabellen en calculators voor.

Een slimme opmerking zou zijn: "Als er met een byte van 8 bits in totaal 256 verschillende waarden mogelijk zijn, hoe kan het dan dat ik maar 128 verschillende velocity-waarden heb?" Misschien valt het je op dat 128 precies de helft is van 256. Het punt is dat midi werkt met statusbytes en valuebytes. Een statusbyte begint altijd met een 1 en een valuebyte altijd met een 0. Dat betekent dat er nog 7 bytes overblijven om 'iets mee te doen'. Die 7 bytes bieden 128 verschillende mogelijkheden (meestal beginnend bij 0, dus doorlopend tot 127).

* Met dank aan MOPRO.nl


Hier onder vind je een omrekenhulp waarmee je kunt experimenteren met getalstelsels tot en met 32-tallig. Een en ander heeft trouwens ook rechtstreeks te maken met het aantal bits (aantal cijfers van de binaire voorstelling van het getal) waarmee de processor van de computer kan rekenen. Heel oude computers rekenden met getallen van maximaal 8 bits, nu werken de meeste computers met 32 bits, en steeds meer al op 64 bits! MIDI is dus in feite een 8 bits systeem.

 MIDI calculator:

Talstelsel: Hoogste digit: Weergave:
Binair (radix 2): 1
Octaal (radix 8): 7
Decimaal (radix 10): 9
Hexadecimaal (radix 16):

F

Radix:
Aantal Bits & Bytes:   Bits nodig: Bytes nodig:
   

 

Gebruiksaanwijzing MIDI calculator:

  • Vul een getal in op één van de regels onder "weergave" en klik op "Bereken".
  • Je ziet nu dat getal weergegeven in andere getalsystemen.
  • Ook zie je hoeveel bits en bytes minimaal nodig zijn om dat getal te verwerken.
  • Bij "Radix" kun je de basis van het getalsysteem zelf opgeven (2-32)
  • Alles wissen door op "Reset" te klikken.
  • Vul dit getal eens in bij Hexadecimaal: 19C678C8E315 en bereken de 32-tallige voorstelling ervan :-)
  • Het grootst mogelijke getal om mee te rekenen met deze calculator is 9007199254740991 ofwel 253 - 1 ofwel ongeveer 9 quadriljoen

Javascript: (c)Sander Sanders 6-01-2022

Links

  • Zie ook in bits & bytes hoe bytes, decimaal en hexadecimaal in MIDI worden gebruikt

Donatie

Dit is een gratis site, die al sinds 2003 voortdurend wordt uitgebreid en geactualiseerd. Als jij ook wilt dat dat zo blijft, doe dan een donatie aan Popschool Maastricht >>

Bijgewerkt op: 19 Juni, 2024