Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Multiplikation verschiedener Zahlensysteme
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Multiplikation verschiedener Zahlensysteme
 
Autor Nachricht
slook
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 16.04.2012
Beiträge: 28

BeitragVerfasst am: 10 Sep 2017 - 11:23:27    Titel: Multiplikation verschiedener Zahlensysteme

Guten Tag,

ich habe in einem C-Code eine Zeile gefunden, bei der ich nicht weiß was dort passiert.

x=x*4;

hierbei umfasst x eine 2byte große binärzahl.
was passiert hier, wenn ich eine binärzahl mit einer dualzahl multipliziere?
W.Kaiser
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 09.01.2006
Beiträge: 1621
Wohnort: BGL

BeitragVerfasst am: 22 Sep 2017 - 20:25:30    Titel: Re: Multiplikation verschiedener Zahlensysteme

slook hat folgendes geschrieben:
Guten Tag,

ich habe in einem C-Code eine Zeile gefunden, bei der ich nicht weiß was dort passiert.

x=x*4;

hierbei umfasst x eine 2byte große binärzahl.
was passiert hier, wenn ich eine binärzahl mit einer dualzahl multipliziere?



zu x=x*4;
Das ist eine rekursive C-Anweisung, die bei jedem Aufruf den aktuellen x-Wert mit 4 multipliziert und damit für den nächsten Aufruf einen neuen aktuellen x-Wert erzeugt. Wenn man das nicht abbricht, laufen die Speicher über.

Schöner wärs so: x(n+1) = x(n) * 4

Für welchen Zahlentyp wurde denn deine Variable x deklariert?
http://manderc.com/types/inttype/index.php


Für die einfacheren CPUs gilt:
Auf der C-Ebene werden hier Ganzzahlen multipliziert
http://manderc.com/types/signedtype/index.php

und auf der Assembler-Ebene werden in den Registern des Rechenwerks der CPU zwei Binärzahlen miteinander multipliziert.
https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Multiplikation.htm
https://www.ra.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_RA/tgi2/04-k3-Rechenwerke.pdf




Fürs Programmieren in C gilt:
Das Binärsystem wird auch Dualsystem oder Zweiersystem genannt.
http://www.c-howto.de/tutorial-einfuehrung-binaersystem.html



Es gibt keine Dual-Darstellung in C!
Die Darstellung mittels Hexadezimalzahlen ist ausreichend.
http://schorsch.efi.fh-nuernberg.de/roettger/index.php/C-Programmierung/Dualzahlen



Ganzzahlen werden in einem Computer mit dem Binärsystem abgebildet, sprich mit den Ziffern 0 und 1. Dieses System ist analog definiert zu dem für Menschen heutzutage üblichen Dezimalsystem, welches die Ziffern 0 bis 9 verwendet.
http://manderc.com/concepts/complement/index.php


Der Operator * ist zulässig für arithmetische (Integer- und Fliesskomma-) Typen sowie den bool-Typ. Boolsche Werte werden als Integer-Werte aufgefasst. Die Operanden werden gegebenenfalls entsprechend den Regeln der arithmetischen Umwandlung gecastet.
Der Multiplikations-Operator entspricht der direkten Umsetzung des entsprechenden Multiplikations-Befehls in Assembler
http://manderc.com/operators/muloperator/index.php






Mit freundlichen Grüßen

W. Kaiser
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Multiplikation verschiedener Zahlensysteme
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum