Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Besonderer Befehl in Java

Frage Entwicklung Java

Mitglied: Sokrates

Sokrates (Level 1) - Jetzt verbinden

15.09.2009, aktualisiert 12:30 Uhr, 4356 Aufrufe, 7 Kommentare, 2 Danke

Hallo,

hierbei handelt es sich um folgenden Befehl
01.
^=
Diesen Befehl habe ich in einem Quellcode gefunden, der folgendes Prinzip umschrieb
01.
Feld[1] = Feld[1] + Feld[2]; 
02.
Feld[2] = Feld[1] - Feld[2]; 
03.
Feld[1] = Feld[1] - Feld[2];
Mit dem Befehl sah das dann so aus
01.
Feld[1] ^= Feld[2]; 
02.
Feld[2] ^= Feld[1]; 
03.
Feld[1] ^= Feld[2];

Ich habe nicht wirklich verstanden, was dieser Befehl macht.
Vielleicht weiß es ja einer von euch.

X
Mitglied: Sokrates
15.09.2009 um 12:29 Uhr
Eine Sache noch zu ergänzen, die ich vergaß zu erwähnen:
Es ist relativ, welchen der beiden Methoden ich ausführe, bei beiden kommt das gleiche Ergebnis raus.

X
Bitte warten ..
Mitglied: Sokrates
15.09.2009 um 13:15 Uhr

Das ist also quasi nur eine Vereinfachung?
Das heißt also die Feld[1]-Variable wird irgendwo gespeichert, die Feld[2] auf die erste geschrieben und der vorerst gespeicherte Wert dann vom neuen Feld[2] abgezogen.
Also wieder das obige System.

X
Bitte warten ..
Mitglied: Kentarion
15.09.2009 um 13:50 Uhr
Vereinfacht wird es jetzt nur bedingt.

Man braucht keine Hilfsvariable bei dieser Methode und verwendet sozusagen einen Trick in dem man XOR der binären Daten anwendet.

du kannst dies mit einem einfachen Rechenbeispiel nachstellen.

Feld[1] = 1 = 0001, Feld[2] = 2 = 0010

Erste Operation:

0001 = Feld[1]
0010 = Feld[2]
XOR
0011 = Feld[1]

Zweite Operation:

0011 = Feld[1]
0010 = Feld[2]
XOR
0001 = Feld[2]

Dritte Operation:

0011 = Feld[1]
0001 = Feld[2]
XOR
0010 = Feld[1]

Und voila - die Werte sind vertauscht - Feld[1] = 2 = 0010 und Feld[2] = 1 = 0001


XOR Tabelle zur Erinnerung - siehe Link:

0 und 0 = 0
0 und 1 = 1
1 und 0 = 1
1 und 1 = 0

Einfach nachrechnen
Bitte warten ..
Mitglied: AndreasHoster
15.09.2009 um 13:53 Uhr
>Das heißt also die Feld[1]-Variable wird irgendwo gespeichert, die Feld[2] auf die erste geschrieben und der vorerst gespeicherte Wert dann vom neuen Feld[2] abgezogen.
Nein, macht er nicht. Und wie man nach Lektüre des Wikipedia Artikels auf die Idee kommen kann ist mir auch nicht klar. Vermutlich nicht gelesen, oder?
Er macht eine bitweise XOR Verknüpfung der beiden Werte.
Das bei entsprechenden Integerwerten es so aussehen kann wie oben ist richtig, aber er arbeitet anders.

Und ich würde Dir mal das Buch Thinking in Java empfehlen, gibts als kostenlosen Download hier: http://www.mindview.net/Books/TIJ/
Bitte warten ..
Mitglied: Sokrates
15.09.2009 um 14:17 Uhr
Zitat von Kentarion:
Vereinfacht wird es jetzt nur bedingt.

Man braucht keine Hilfsvariable bei dieser Methode und verwendet
sozusagen einen Trick in dem man XOR der binären Daten anwendet.

du kannst dies mit einem einfachen Rechenbeispiel nachstellen.

Feld[1] = 1 = 0001, Feld[2] = 2 = 0010

Erste Operation:

0001 = Feld[1]
0010 = Feld[2]
XOR
0011 = Feld[1]

Zweite Operation:

0011 = Feld[1]
0010 = Feld[2]
XOR
0001 = Feld[2]

Dritte Operation:

0011 = Feld[1]
0001 = Feld[2]
XOR
0010 = Feld[1]

Und voila - die Werte sind vertauscht - Feld[1] = 2 = 0010 und
Feld[2] = 1 = 0001


XOR Tabelle zur Erinnerung - siehe Link:

0 und 0 = 0
0 und 1 = 1
1 und 0 = 1
1 und 1 = 0

Einfach nachrechnen


Danke

X
Bitte warten ..
Mitglied: Sokrates
15.09.2009 um 14:18 Uhr
Zitat von AndreasHoster:
>Das heißt also die Feld[1]-Variable wird irgendwo
gespeichert, die Feld[2] auf die erste geschrieben und der vorerst
gespeicherte Wert dann vom neuen Feld[2] abgezogen.
Nein, macht er nicht. Und wie man nach Lektüre des Wikipedia
Artikels auf die Idee kommen kann ist mir auch nicht klar. Vermutlich
nicht gelesen, oder?
Er macht eine bitweise XOR Verknüpfung der beiden Werte.
Das bei entsprechenden Integerwerten es so aussehen kann wie oben ist
richtig, aber er arbeitet anders.

Und ich würde Dir mal das Buch Thinking in Java empfehlen, gibts
als kostenlosen Download hier: http://www.mindview.net/Books/TIJ/


Gelesen schon, nur handelt es sich bei mir nicht um einen fachspezifischen Informatik-Studenten sondern einen Oberstufenschüler.

X
Bitte warten ..
Ähnliche Inhalte
Multimedia & Zubehör
Caavo: Die besondere Fernbedienung für Anspruchsvolle (3)

Link von magicteddy zum Thema Multimedia & Zubehör ...

Java
Java Applets in Java Web Start migrieren

Frage von Manu776 zum Thema Java ...

Java
gelöst Was ist ein "Href" im Java ? (31)

Frage von rainergugus zum Thema Java ...

Linux Tools
Live-Linux mit Java? (3)

Frage von User1000 zum Thema Linux Tools ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (28)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (21)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (17)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...