Bits aus einem Byte extrahieren

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

Propellator

Betreff: Bits aus einem Byte extrahieren

BeitragFr, Jan 06, 2012 1:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ExtractBits:Byte(package:Byte, pos:Int, count:Int, realign:Int = True)

Beschreibung
Mit dieser Funktion könnt ihr bestimmte Bits aus einem Byte extrahieren. Dies wird oft gebraucht wenn man mit älteren Dateiformaten (z.B. GIF :/ ), oder binären Daten im Allgemeinen arbeitet, wo gewisse Informationen nur wenige Bits eines Bytes beanspruchen.

Parameter
  • package - Das Byte mit den Bits
  • pos - Position des ersten zu extrahierenden Bits (1-basierend, vom wenigst Signifikanten Bit aus gezählt, also von rechts aus.)
  • count - Anzahl der Bits die zu extrahieren sind
  • realign - (Optional, Standard = True) Die Bits nach dem extrahieren an die Stelle des am wenigst Signifikanten Bits schieben.


BlitzMax: [AUSKLAPPEN]
Function ExtractBits:Byte(package:Byte, pos:Int, count:Int, realign:Int = True)
Local mask:Byte = %11111111 Shr (8 - count) Shl (pos - 1)
mask = %11111111 ~ mask
Return (package | mask ~ mask) Shr ((pos - 1) * realign)
EndFunction


Edit: Jetzt sogar bugfrei!
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.
  • Zuletzt bearbeitet von Propellator am Fr, Jan 06, 2012 1:26, insgesamt 2-mal bearbeitet

Tankbuster

BeitragFr, Jan 06, 2012 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
oder binären Daten im Allgemeinen arbeitet, wo gewisse Informationen nur wenige Bytes eines Bits beanspruchen


Fällt dir der Fehler auf? Razz
Twitter
Download Jewel Snake!
Windows|Android

Propellator

BeitragFr, Jan 06, 2012 1:25
Antworten mit Zitat
Benutzer-Profile anzeigen
... ist schon spät. :/
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group