Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4365 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
gelöst Was ist ein "Href" im Java ? (31)

Frage von rainergugus zum Thema Java ...

Java
Java deployment.properties und Systemvariablen (3)

Frage von 1x1speed zum Thema Java ...

JavaScript
Jnlp Verknüpfung an Java nicht möglich (10)

Frage von snajman zum Thema JavaScript ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (20)

Frage von jensgebken zum Thema Windows Server ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (13)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...