Ich versuche eine Funktion in Assembly zu schreiben, die erkennt, ob eine längere Binärzahl ein kleineres Binärmuster enthält.Suchen Sie ein Muster von Binärzahlen mit Shift-rechts und bitweise-UND?
Beispiel:
Hat enthalten ?
Als ich dieses Problem gelesen habe, dachte ich, dass ich ein bitweises UND mit der großen Zahl und seinem kleineren Muster machen würde, während ich jedes Mal in einer Schleife nach rechts (logisch) wechsle.
in meinem Kopf Also, ich dachte, es tun würde:
100111 AND 1001 = 0
Shift-right 1
010011 AND 1001 = 0
Shift-right 1
001001 AND 1001 = 1 // Pattern FOUND!
und wiederholen Sie dies, bis entweder die Zahl verschoben wurde, bis er Null war oder das AND 1 zurück
Aber ich denke, ich muss etwas verwirrt haben, weil dies 1 für die meisten Dinge, die ich eingefügt habe, beim ersten Durchlauf der Schleife zurückgibt. Bin ich verwirrt über meine Verwendung von AND?
Ich benutze die MIPS "And" Anweisung, die Bitwise ist. –
AHhh, ich verstehe. Ich habe den Gleichheitstest nicht gegen das Suchmuster durchgeführt. –