Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 04:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Zahlensysteme

Discussion on Zahlensysteme within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
NRj™'s Avatar
 
elite*gold: 309
The Black Market: 119/0/0
Join Date: Jul 2011
Posts: 4,311
Received Thanks: 886
Zahlensysteme

Warum entspricht die signed binäre Zahl 10110010 -78 im Zehnersystem? Ich komme auf +178. Ich könnte mir höchstens vorstellen das Rechenzeichen in Minus zu ändern wegen signed.

Rechenweg: 1 * 2^1 + 1 * 2^4 + 1 * 2^5 + 1 * 2^7 = 2 + 16 + 32 + 128 = + 178

Unsigned binäre Werte kann ich ohne Probleme umrechnen. Was muss man also bei signed beachten?
NRj™ is offline  
Old 11/11/2015, 23:19   #2
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
MSB = 1 bedeutet dass die zahl im 2er Komplement steht. Das heißt du musst es zu erst umrechnen mit not Zahl + 1 also aus 10110010 wird -(01001101+1) also -01001110

Das hat den hintergrund das mit dem 2er Komplement die Subtraktion genau so funktioniert wie die Addition und so keine 2 Algorithmen in die ALU implementiert werden müssen

PS: Das hat grundsätzlich erst mal nichts mit dem Zahlensystemen selbst zu tun, sondern ist einfach eine Technische Implementierung zur effektiven nutzung negativer zahlen. Das Binärsystem selbst (als mathematisches Darstellungskonzept) kennt genau die selben Verknüpfungen und Axiome wie alle anderen Systeme
warfley is offline  
Old 11/11/2015, 23:33   #3
 
NRj™'s Avatar
 
elite*gold: 309
The Black Market: 119/0/0
Join Date: Jul 2011
Posts: 4,311
Received Thanks: 886
Wie bist du jetzt auf die negative binärzahl gekommen? Kann das nicht ganz nachvollziehen.
NRj™ is offline  
Old 11/11/2015, 23:44   #4
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Ok ich erkläre es mal Schritt für Schritt:
Zunächst einmal wenn du einen Signed Integer hast überprüfst du das MSB
Code:
10110010
^
Da es sich um eine 1 handelt weist du die Zahl ist negativ und daher im 2er Komplement.
Das bedeutet du musst das in die normale Darstellung umrechnen und dann negieren. Die Umrechnung Besteht aus 2 Schritten:
1. Bitwise Not
Code:
10110010 
01001101
2. Plus 1
Code:
 01001101
+00000001
--------
01001110
Das negative dieser Zahl ist dein Wert:
Code:
-01001110 = -(2+4+8+64) = -78
warfley is offline  
Thanks
2 Users
Old 11/11/2015, 23:55   #5
 
NRj™'s Avatar
 
elite*gold: 309
The Black Market: 119/0/0
Join Date: Jul 2011
Posts: 4,311
Received Thanks: 886
Danke jetzt hab ich es verstanden!
NRj™ is offline  
Old 11/12/2015, 10:47   #6
 
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 444
Du kannst es dir auch so vorstellen: Im Zweierkomplement rechnet man Modulo 2^(n+1) (n höchstes Bit Bits, bei 0 anfangen zu zählen). Das heißt, dass du nach Belieben Vielfaches von 2^(n+1) auf eine Zahl addieren / subtrahieren darfst, ohne dass sich der Wert verändert.

Also ist zum Beispiel, bei 8 Bit ZK: 178 = 178 - 256 = -78.

Interpretiert wird das dann eben so, dass man die Zahlen 0..(2^n)-1 als die ersten positiven Zahlen und 2^(n)..(2^(n+1))-1 als die ersten negativen Zahlen betrachtet.

Damit kommst du auch auf die Formel:
Quote:
ZK = z_n*2^n + ... + z_0 - 2^(n + 1) = -z_n * 2^n + ... + z_0
algernong is offline  
Reply


Similar Threads Similar Threads
[Buying] Mathegenie (Zahlensysteme)
03/24/2015 - elite*gold Trading - 0 Replies
close
JAVA Zahlensysteme umwandeln
12/10/2014 - Java - 5 Replies
Hallo ich bräuchte eure Hilfe. Ich brächte ein Programm das eine Zahl n in ein gewünschtes Zahlensystem p umwandelt. Also p kann Binäre, Octa oder Hex sein. public static String rebase(int n, int p){ int q=n%p; n=(n-q)/p; if (n>0) { return rebase(n, p) + m(q);
Zahlensysteme: Ein kurzer Überblick
09/06/2011 - Diablo 2 Programming - 7 Replies
Gerade im Bezug auf D2NT erlebe ich es hier immer wieder, dass eigentlich recht simple Anweisungen wie etwa NTConfig_CheckSelfSafe = 0x01|0x02|0x10; von vielen schwer oder gar nicht nachvollzogen werden können. Da die Hintergründe eigentlich wirklich nicht sonderlich schwierig sind, vermute ich deshalb, dass es einfach an Grundwissen im Bereich der Zahlensysteme fehlt. Diese kleine Einführung soll darum dazu dienen, einen Überblick über die verschiedenen Zahlensysteme zu erlangen, die...
[Erklärung] Hexadezimal / Zahlensysteme
01/07/2011 - General Coding - 4 Replies
So Leute, ich habe mir in letzter Zeit einige Videos auf Youtube und ein paar "Hacking"-Tutorials hier angeschaut... Und ich finde es wirklich erschreckend, wie manche Leute versuchen Hacking zu erklären und mit irgendwelchen Codes die sie im I-Net gefunden haben, Tutorials zu schreiben! (Ich meine damit Sprüche wie (Ich zitiere hacken mit AutoIt): "jetzt setzen wir noch ein 0x davor, dass AutoIt weiß, dass es sich um eine Cheat Engine - Adresse handelt) Wer den Fehler nicht bemerkt hat, es...



All times are GMT +1. The time now is 04:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.