Mr_SOL: Bitverschiebung

Hallo

Vielleich hat jemand von euch eine Idee oder Hinweis.

Ich habe eine String!! welche 4 Bytes lang ist, der Inhalt stammt von einen Sensor und beinhaltet verschieden Werte, diese werden im Browser dargestellt.

Aus diesen soll ab einen Startbit (BitOffset) auf eine Länge (BitSize) Daten herausgeschnitten werden.

Beispiel (Bytes=4, BitOffset=4,BitSize=4)
00110010 01011011 00000000 00000000-> 0010

Mein Lösungsansatz

value<<=32-(BitOffset+BitSize);
  value>>=32-BitSize;

Durchbitverschiebung den Wert extrahieren.
Problem in js gibts keine "String to LongInteger".

Danke in Voraus.

  1. Yerf!

    Problem in js gibts keine "String to LongInteger".

    Aber es gibt http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=ParseInt(), das kann auch mit Dualzahlen umgehen (2. Parameter)

    Ich würd aber evtl. das ganze über Stringfunktionen abhandeln. Mit http://de.selfhtml.org/javascript/objekte/string.htm#replace@title=replace() alle leerzeichen entfernen und dann mit http://de.selfhtml.org/javascript/objekte/string.htm#substr@title=substr() den gesuchten Teil ausschneiden.

    Gruß,

    Harlequin

    --
    RIP --- XHTML 2
    nur die Besten sterben jung
    1. Besten Dank für die Antwort. ParseInt() kenne ich. Die Leerzeichen der 2 letzten Byte ist nur ein Beispiel, hier kann sehr wohl ein Wert stehen.

  2. Hi,

    Ich habe eine String!! welche 4 Bytes lang ist, der Inhalt stammt von einen Sensor und beinhaltet verschieden Werte, diese werden im Browser dargestellt.

    Aus diesen soll ab einen Startbit (BitOffset) auf eine Länge (BitSize) Daten herausgeschnitten werden.

    http://de.selfhtml.org/javascript/objekte/string.htm#substr

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  3. var s = "asdf";  
    var s2 = "";  
    for (var i = 0, l = s.length; i < l; i++) {  
      s2 += s.charCodeAt(i).toString(2);  
    }  
    s2.substring(bitOffset, bitOffset + bitSize)
    

    Geht sicher einfacher, mit Bitoperationen kenne ich mich nicht aus.

    Mathias