Byte<--->Bit von ??? |
Dies sind 2 functionen um Bytes in Bits und umgekert zu wandeln. [code:1:864bfb90b3]Function bit_byte$(bits$) bits$ = "1" + bits$ While Len(bits$) Mod 8 > 0 bits$ = "0"+bits$ Wend outp$ = "" While Len(bits$) > 0 sav% = 0 For pos% = 1 To 8 sav% = sav%+Int(Mid(bits$,pos%,1))*2^(8-pos%) Next bits$ = Right(bits$,Len(bits$)-8) outp$ = outp$ + Chr(sav%) Wend Return outp$ End Function Function byte_bit$(bytes$) outp$ = "" While Len(bytes$) > 0 bit% = Asc(Left$(bytes$,1)) sav$ = "" For pos% = 7 To 0 Step -1 If bit%-2^pos% >= 0 Then sav$ = sav$ +"1" : bit% = bit% - 2^pos% Else sav$ = sav$ +"0" Next bytes$ = Right$(bytes$,Len(bytes$)-1) outp$ = outp$ + sav$ Wend outp$ = Right(outp$,Len(outp$)-Instr(outp$,"1")) Return outp$ End Function[/code:1:864bfb90b3] Und wenn ihr das dann mal testen wollt dann müsste ihr einfach das oben drüber schreiben: [code:1:864bfb90b3]a$ = "11100101011110001011101" Print a$ b$ = bit_byte(a$) Print b$ Print byte_bit(b$) WaitKey End[/code:1:864bfb90b3] |
von ??? |
Bytes = Bit * 8 :roll: |
von ??? |
Ich habe das geproggt, weil man dann z.b. binärinformationen wie an oder aus nicht als 1 oder 0 per Inet versenden muss sonder alle binär infos mit ein oder zwei bytes zu schikken. |
von ??? |
Das ist aber absolut Resourcen fressent... da bei dir eine 0 oder 1 immer ein Byte belegt... Also 16 * 0/1 = 16 Bytes = 16*8 = 128 Bits ... So dann brauchst du für 16 Bits als String gleich 128 Bits zum Transport... |
von ??? |
Sorry ich hab da was falsch erklärt: Es geht darum mehrere binär informationen in form eines Strings als Bytes zusammen zufassen. (bsp: "1111111111111100"<=>"˙ü" und wieder andersrum).´ @ Ping das man für eine 1 oder eine 0 ein ganzes byte verwendet wollte ich gerade damit umgehen! |