ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
3659
3659
EMPFEHLEN
-
09.06.04 13:46 #1
- Registriert seit
- May 2004
- Beiträge
- 20
Hi,
gibt es eine einfachere Möglichkeit eine Dezimalzahl zu invertieren..
oder muss ich sie wirklich erst in Binärumwandeln ->invertieren ->und wieder zurückkonvertieren?
wenn ja, wie invertiere ich dann ein binärzahl?
danke für eure antworten
viele grüße,
Christina
-
Also eine Binärzahl zu invertieren sollte nich so schwer sein, wenn du sie als String bearbeitest. Man muss blos alle 1er durch 0er und umgekehrt ersetzen. Dann wird du zum Beispiel aus "1001" der Wert "0110" bzw "110".
Das könnte man zum Beispiel so machen:Code :1 2 3 4
Dim strBinär As String strBinär = Replace(strBinär, "0", "blub") strBinär = Replace(strBinär, "1", "0") strBinär = Replace(strBinär, "blub", "1")
Edit: Ein Tutorial zum Wandeln von Dezimal in Binär findest du hier oder auch hier!Geändert von Shakie (09.06.04 um 20:04 Uhr)
hihi = -h²
-
erm... is ne invertierte dezimal zahl nicht einfach +/- ?!
-
ähm...jetzt irritierst du mich. Kann schon sein...Ich dachte immer, beim Invertieren wird der Binärwert umgedreht. Was genau verstehst du denn unter Invertieren? Aus Plus mach Minus?
hihi = -h²
-
*kopfkratz*
invertieren heißt doch eigentlich nix anderes als das gegenteil von etwas...
im dualsystem is das gegenteil von "0" "1" und umgekehrt und im dezimalsystem is doch das gegenteil von +1 -1 oder net?! ka dachte ich mir nur so
-
Also wenn du lediglich aus Plus Minus machen willst, dann musst du ja blos deine Zahl mit -1 multiplizieren! Aber wenn du eine binärzahl wandelst indem du aus "0" "1" machst, dann kommt was anderes raus mit dem GLEICHEN Vorzeichen. Wozu brauchst du das denn?
hihi = -h²
-
Beim Invertieren von Binärzahlen wird die 1 zur 0 und umgekehrt. D.h. du musst die Binärzahl einfach mit einem NOT bearbeiten. Wie das in VB geht weiß ich leider nicht, aber dazu wird sicher etwas in der Hilfe stehen.
Beim Invertieren kommt es auf den Zahlenraum an. Wenn du z.B. von 0 (BIN: 000) bis 7 (BIN: 111) deinen Zahlenraum hast und dann eine Zahl zwischen drin invertierst dann kommt z.B. bei der 6 (110) eine 1 (001) raus und bei 5 (101) eine 2 (010) usw.Geändert von Carndret (10.06.04 um 17:10 Uhr)
-
10.06.04 17:22 #8
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Kleines Beispiel:
Invertieren wir mal die binäre Darstellung von 10:
10 im Dezimalsystem ist 00001010 im Binärsystem.
Subtrahiert man von diesem Wert jetzt den Maximalwert in der gleichen Größenordnung (1 Byte), dann kriegt man als Ergebnis folgendes:
Code :1 2 3 4
00001010 | 10d - 11111111 | 255d -------- 11110101 | (-)245d bzw
Rein rechnerisch ließe sich das generell lösen, indem man folgende Dinge beachtet:
1. Wie groß ist der Betrag der zu invertierenden Zahl?
2. Wieviele Bytes muss man sich zur Hand nehmen, um die Zahl zu invertieren?
Wie wir ja (hoffentlich) alle wissen, ist der maximale Wert in einem Byte 2^8-1. Der Maximalwert in zwei Bytes ist 2^16-1. Und so weiter.
Wenn man also weiß, in welchem Größenbereich die Zahl liegt, kann man daraus den Maximalwert der benötigten Bytes errechnen und diesen von der Ausgangszahl subtrahieren.
Ich hoffe mal, dass das genau das war, was du wolltest und natürlich, dass das einigermaßen verständlich ausgedrückt war.
"You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
Ähnliche Themen
-
Dezimalzahl teilen
Von xxxmike im Forum PHPAntworten: 20Letzter Beitrag: 10.07.09, 12:23 -
ein char in Dezimalzahl umwandeln
Von swit27 im Forum JavaAntworten: 14Letzter Beitrag: 11.02.08, 10:15 -
Dezimalzahl in Hexagesimalzahl
Von Reinhard87 im Forum C/C++Antworten: 3Letzter Beitrag: 05.01.08, 11:26 -
Dezimalzahl prüfen
Von Arndtinho im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 12.09.06, 19:17 -
invertieren?
Von untread im Forum PhotoshopAntworten: 3Letzter Beitrag: 29.03.02, 20:08





Zitieren
Login





