You are not logged in.

  • Login

1

Monday, November 9th 2009, 10:12am

Wie funktioniert Byte-Division

Hallo, ich fange gerade an mit Programmierung und hätte da eine Frage.

Mittels Google konnte ich verstehen, wie Zahlen in bit-Darstellung addiert, subtrahiert und multipliziert werden.
Die Division durchschaue ich jedoch nicht.

Könnte mir einer nahelegen was z.B. bei

10011010 : 1010 (dez: 66 / 10) passiert?

Ich weiss soviel, dass wie im dezimalen der term linksbündig darunter geschrieben und dann subtrahiert wird, doch wie entscheide ich für das Ergebnis zwischen 0 und 1?


Wäre nett, danke im voraus,

mfg

2

Monday, November 9th 2009, 11:32am

Wenn du die anderen Grundrechenarten auch binär beherrscht, bist du schon fast am Ziel :)

Schau dir mal folgenden Link an: *Link*

3

Monday, November 9th 2009, 9:18pm

Danke, was ich allerdings immernoch nicht verstehe

10100011011/1011=

im allerersten Schritt wird dort im Beispiel entschieden, dass die erste Zahl des Ergebnisses eine 0 ist.

Man betrachtet also zuerst die ersten linken vier stellen: 1010 und entscheidet, dass man dann eine 0 nimmt.
Wie entscheidet man das??

Im Dezimalbeispiel oben ist es klar: hab ich als erste Stellen eine 13 und will durch 11 dividieren, dann sehe ich die 11 passt 1x in die 13 rein, also ist die erste Stelle der Lösung eine 1. Dann schreibe ich die 11 unter die 13 und subtrahiere.

Aber wie vergleiche ich 1010 und 1011 ? Heimlich umrechnen in Dezimal und dann vergleichen ist ja quasi "Betrug"...

:(

4

Tuesday, November 10th 2009, 10:30am

Hi,


der erste Schritt wurde wohl nicht weiter ausgeführt, wenn ich das richtig sehe.
Denn 1010-1011 ergibt (1)0000 also 0.
Wobei die 1 in Klammern der Überlauf ist, der nicht weiter betrachtet wird. (siehe "Vorsicht Überlauf")

5

Tuesday, November 10th 2009, 11:34pm


Denn 1010-1011 ergibt (1)0000 also 0.


auf dieser Seite http://de.wikibooks.org/wiki/Wikijunior_…s_Minusrechnen.. hab ich gelesen, dass bei der subtraktion 0-1 = 1 mit -1 als übertrag ist

demnach sollte doch

1010
-1011
--------
1111

sein. wieso ist es 0000? =/

6

Wednesday, November 11th 2009, 8:06am

das hängt aber hauptsächlich davon ab, wie man überläufe behandelt. Denn schließlich kommt dabei eine negative Zahl raus.
Für die Division ist das aber völlig unerheblich. Sobald du bei der höchstwertigen (also bei der linkesten Ziffer ;) ) noch nen übertrag hast, weißt du, dass die zu Subtrahierende Zahl größer ist als der Minuend. Daher musst du in diesem Fall bei der Division eine Null ans Ergebnis hängen und mit dem nächsten Schritt weitermachen (also die nächste Ziffer des Divisors "runterziehen"). Wenn die Subtraktion aber glatt geht hängst du ne 1 ans Ergebnis und machst mit dem Ergebnis der Subtraktion weiter. Ganz normales schriftliches Dividieren eben.

Similar threads

Social bookmarks