tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
3659
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    wasserflasche wasserflasche ist offline Mitglied
    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
     

  2. #2
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    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²

  3. #3
    Avatar von danielm
    danielm danielm ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Kassel
    Beiträge
    123
    erm... is ne invertierte dezimal zahl nicht einfach +/- ?!
     

  4. #4
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    ä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²

  5. #5
    Avatar von danielm
    danielm danielm ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Kassel
    Beiträge
    123
    *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
     

  6. #6
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    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²

  7. #7
    Avatar von Carndret
    Carndret Carndret ist offline Mitglied Platin
    Registriert seit
    Apr 2001
    Ort
    Schaffhausen
    Beiträge
    546
    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)
     

  8. #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

  1. Dezimalzahl teilen
    Von xxxmike im Forum PHP
    Antworten: 20
    Letzter Beitrag: 10.07.09, 12:23
  2. ein char in Dezimalzahl umwandeln
    Von swit27 im Forum Java
    Antworten: 14
    Letzter Beitrag: 11.02.08, 10:15
  3. Dezimalzahl in Hexagesimalzahl
    Von Reinhard87 im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 05.01.08, 11:26
  4. Dezimalzahl prüfen
    Von Arndtinho im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 12.09.06, 19:17
  5. invertieren?
    Von untread im Forum Photoshop
    Antworten: 3
    Letzter Beitrag: 29.03.02, 20:08