INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

2er Komplement



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.04.2010, 15:50
Beitrag #1

Caru Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Dec 2009

8.6
2009
de

18147
Deutschland
2er Komplement
Hallo liebe LabVIEW-Experten,

ich würde gerne wissen, wie ein LabVIEW-Programm aussehen kann, das 12bit-Daten als 2er Komplement ausgibt. Das höchste bit bei den negativen Werten ist dabei mit einer 1 gekennzeichnet. Ich habe gelesen, dass ich zuerst 1 von den 12bit subtrahieren muss und danach das ganze invertieren.

Im Forum habe ich dazu noch nichts gefunden. Kann mir jemand weiterhelfen?

Vielen Dank.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2010, 16:01
Beitrag #2

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
2er Komplement
Das Zweierkomplement wird zur Darstellung von negativen Zahlen im binärsystem benutzt.
Zuerst ignoriert man das Vorzeichen (ABS), dann wandelt man die Zahl von Dezimal in Dual um. Jetzt die Binärzahl invertieren und anschliessend eine Eins addieren. Schon hast du das Zweierkomplement einer negativen Dezimalzahl.

Alle Funktionen wie Betrag, Umwandeln, Not, Add sind leicht in der Palette zu finden. einfach nur die genannte Reihenfolge beachten und entsprechend "verdrahten".

Viel Erfolg!
Smile

Tobias Brüggemann
Dipl.-Ing.(FH) Nachrichtentechnik/Elektronik
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2010, 16:45
Beitrag #3

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
2er Komplement
Hier ein einfaches Bsp. für 8 Bit (in beide Richtungen):

Sonstige .vi  Zweierkomplement.vi (Größe: 5,93 KB / Downloads: 1289)

Lv86_img

   

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2010, 21:15
Beitrag #4

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
2er Komplement
oO - ich wusste gar nicht, dass LV schon automatisch bei Umwandlung das 2erkomplement ausgibt....

Man lernt eben nie aus! Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 06:23
Beitrag #5

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
2er Komplement
Das macht es aber nur bei Datentypen mit "I", also z.B. I8, I16,..., damit hier keine Unklarheiten entstehen.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 07:09
Beitrag #6

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
2er Komplement
Mal 'ne ganz ganz blöde Frage, weil ich mich nie mit so einem Thema beschäftigt habe: Wie unterscheidet man denn im Beispiel von Markus -127 und +129 auf der binären Ebene? Ist doch beides 10000001, oder?

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.04.2010, 07:35
Beitrag #7

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
2er Komplement
' schrieb:Wie unterscheidet man denn im Beispiel von Markus -127 und +129 auf der binären Ebene? Ist doch beides 10000001, oder?
Durch Konvention und Definition!
Definition: Unterscheidung dadurch, ob es ein vorzeichenbehafteter oder vorzeichenloser Integer ist (int8, uint8)
Konvention: ob es im Einer- oder Zweierkomplement gespeichert/verarbeitet wird

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2010 09:33 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
2er Komplement
' schrieb:Mal 'ne ganz ganz blöde Frage, weil ich mich nie mit so einem Thema beschäftigt habe: Wie unterscheidet man denn im Beispiel von Markus -127 und +129 auf der binären Ebene? Ist doch beides 10000001, oder?
Es gibt neben den eigentlichen Daten immer noch etwas zweites, was von LabVIEW mit gespeichert wird: den sog. "Typ-String". In Deinem Beispiel sind die beiden Daten gleich, die Typ-Strings aber unterschiedlich. Experimentiere mal selbst hiermit: (die 2. Konstante ist I8, wurde falsch benannt)
   
Was ich noch sagen wollte: Warum sagt hier niemand klar, wie einfach die 2er-Kompliment-Konvertierung ist?
So: (wobei man die Konverter sogar weglassen kann, wenn man einfach das Anzeigeformat anpasst und einen Konverierungspunkt in Kauf nimmt)
   
Wenn es sich nicht im ein IEEE-Format handelt (mit 8, 16, 32, 64 bit), dann wird die Konvertierung ein klein wenig aufwändiger. Also z.B. ein 18bit-Wert eines AD-Umsetzers müßte zuerst in seinem 32bit Container 14bit nach links gerückt werden, Konvertiert und dann wieder nach rechts geschoben werden.
Um diese Prozedur zu ersparen, habe ich es auch schon erlebt, daß die Daten eines 12bit-Umsetzers linksbündig im 16bit Format ausgegeben werden. Eine kluge Entscheidung des Herstellers, wie ich finde.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 10:16
Beitrag #9

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
2er Komplement
:google:ist dein Freund, da es doch etwas komplizierter istWink

Forum NI

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 13:06 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2010 13:38 von Lucki.)
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
2er Komplement
' schrieb::google:ist dein Freund, da es doch etwas komplizierter istWink

Forum NI
Es genügt aber nicht zu goggeln, die Kunst dabei ist, die oft überwiegendende Anzahl von Schrott-Ergebnissen zu erkennen.
Habe leider übersehen, daß sich die Frage direkt auf 12 bit bezieht, also nochmal die Antwort speziell hierfür.
Der Wertebereich bei 12 bit ist 0..4095.
Sollen in diesem Bereich auch negative Zahlen abgebildet werde, so gibt es dafür 2 Darstellungsformen:
a) mit Offset
b) als 2er-Komplement.
Hier ein VI für beide Verfahren zur Konvertierung:
   
Mein vorhergehender Text enthält in der Tat einen fehlerhafte Aussage. Um das das MSB der 12 bit-Zahl in das MSB des 16bit Containers zu bringen, kann man die Bits entweder um 4 Positionen nach links verschieben oder aber mit 16 multiplizieren. So weit so gut. Man darf aber danach die Bits nicht wieder nach rechts shiften, sondern muß das mit Ganzzahl-Division durch 16 machen. Also wie im Beispiel oben. Es bleibt aber alles nach wie vor ganz einfach, im Gegensatz also zu dem zitierten Google-Beispiel.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  2er-Komplement Ho123 2 4.687 15.11.2005 09:23
Letzter Beitrag: Ho123

Gehe zu: