Methoden | Beschreibung |
Write() | Bitgruppe schreiben. Parameter:
|
Read() | Bitgruppe Lesen. Parameter:
|
Data() | Stream initialisieren bzw. auslesen. Parameter:
|
var binch = new Binch(); //---- Werte 10, 100 und 1000 schreiben binch.Write(4, 10); binch.Write(7, 100); binch.Write(12, 1000); //---- Erzeugten Stream holen var mystream = binch.Data();Der...//---- Stream wieder auslesen binch.Data(mystream); // Stream festlegen a = binch.Read(4); // Wert 10 lesen b = binch.Read(7); // Wert 100 lesen c = binch.Read(12); // Wert 1000 lesen...//---- Weiteren Stream erzeugen binch.Data(''); // Reset binch.Write(1, 0); // etc....
Binch = function () { var Seq='', SeqL=0, SeqP=0, Bits=0, Akku=0, cons=this.constructor; function ntos(n) { n=n.toString(16); if (n.length==1) n='0'+n; return unescape('%'+n); } this.Write = function(n,v) { if (Bits) Akku|=(v<<Bits); else Akku=v; Bits+=n; while (Bits>7) { Seq+=ntos(Akku&255); SeqL++; Akku>>=8; Bits-=8; } } this.Read = function(n) { while (Bits<n) { if (SeqP<SeqL) Akku|=(Seq.charCodeAt(SeqP++)<<Bits); Bits+=8; } var v=Akku&cons.BitsMsk[n]; Akku>>=n; Bits-=n; return v; } this.Data = function(s) { if (s==undefined) { if (Bits) { Seq+=ntos(Akku); SeqL++; Bits=Akku=0; } return Seq; } Seq=s; SeqL=s.length; SeqP=Bits=Akku=0; } } Binch.BitsMsk=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071, 262143,524287,1048575,2097151,4194303,8388607,16777215,33554431,67108863,134217727,268435455, 536870911,1073741823,2147483647,4294967295];
template | ![]() |