Datentypen Integer mit führender Null

ocsme

Top Contributor
Hallo zusammen,

ich würde sehr gerne ein kleines Programm schreiben das eine Folge von Bit zahlen umwandelt =) mittels Horner Schema z. B. im 2er Komplement.

Das Problem ist das sobald ich eine führende Null angebe bei einem Integer / Long interpretiert der JAVACompiler die Zahl ja als OktaZahl.
Wie bekomme ich das Problem gelöst? Strings und der gleichen dürfen wir noch nicht benutzen :D

Hier nur mal der Anfang:
long n = 0111L;
long rest = n % 10;
long erstesBit = n / 10;

leider kommt das raus:
73
3
7
 

ocsme

Top Contributor
ich habe einen gegeben int aus Binärzahlen. Das Programm soll bei 1 Positiv als + machen und bei 0 ein -.
Somit muss ich ja die erste stelle es Int ermitteln und dann vergleichen ist es eine 0 oder eine 1.
Ich versuche die Zahl ja abzuschneiden-siehe oben- doch wie schon gesagt wenn der Int mit 0 anfängt interpretiert er es als Oktazahl und gibt mir somit ein falsches Ergebnis :-(
Weiß da jemand eine Antwort.
Denn mit 0b geht es ja so auch nicht zumindest wüsste ich nicht wie denn die Eingabe müsste dann ja 0b sein wenn man eine Negative Zahl erstellt.

LG
 

Robat

Top Contributor
Haben die Zahlen immer die selbe Anzahl an Bits?
Nehmen wir folgendes an:
Java:
long x = 0b100101;

Was spricht denn dann dagegen mit Shift-Operationen nach dem MSB zu schauen:
Java:
int msb = (x >> 5) & 1;

Jetzt ist eben die Frage ob deine Zahlen immer die gleiche Länge an Bits haben.. für andere Zahlen müsste die 5 eben durch die Anzahl der Bits - 1 ersetzt werden.
 

ocsme

Top Contributor
ja es sollen immer 32 Bit sein.
Der Programmaufruf bekommt die Bit mit also als Inter.parseInt. Somit ist ja nicht klar was als erstes angegebn wird ob 0 oder 1. Das war / ist mein Problem.
Das würde ich sehr gerne abschneiden und den rest die 31 Bit über Horner - Schema berechnen!
LG
 

Robat

Top Contributor
Also mit ein bisschen Gefriemel ist es in der Tat möglich..

Du musst mit einer for-Schleife über alle Bits laufen (alle außer das MSB) und dann mit der o.g. Formel shiften.
So kriegst du die einzelnen Bits und kannst mittels des Horner-Schemas die Zahl berechnen.
Ob das MSB gesetzt ist kriegst du dann dementsprechend so raus: int msb = (zahl >> 31) & 1;

Du hast nur ein Problem wenn du eine neg. Zahl hast. Dann musst du die Umwandlung aus dem Zweierkomplement erst wieder rückgängig machen. Das bekommst du aber noch raus ;)
 

JStein52

Top Contributor
Der Programmaufruf bekommt die Bit mit also als Inter.parseInt
Sorry, verstehe auch nicht was du da meinst. Hat sich mal jemand den Beitrag von @Meniskusschaden angesehen ?
Wenn du dem Programm beim Aufruf 01010 mitgibst (in args[] nehme ich an) und es dann mit Integer.parseInt(...) in int parsed dann hast du hinterher 1010 als Zahl. Wo hast du genau dein Problem ? Wie sieht dein Code aus ? Das Problem tritt nur auf wenn du es als Literal im Code stehen hast so wie in deinem Codeschnipsel oben. Aber du sagst ja das wird eingegeben ?!
 

Meniskusschaden

Top Contributor
a es sollen immer 32 Bit sein.
Der Programmaufruf bekommt die Bit mit also als Inter.parseInt. Somit ist ja nicht klar was als erstes angegebn wird ob 0 oder 1. Das war / ist mein Problem.
Die Eingabe wäre also ein integer-Wert, der nur aus Nullen und Einsen besteht und daraus soll dann der entsprechende Dezimalwert berechnet werden? In eine integer-Variable passt aber keine 32-stellige Zahl. Oder soll jede Ziffer einzeln eingelesen werden? Außerdem erwartet Integer.parseInt() einen String. Wo kommt der denn her, wenn Strings verboten sind? Vielleicht wäre es besser, die Original-Aufgabenstellung zu posten. Ich glaube, es ist noch nicht wirklich klar, worum es hier geht.
Das würde ich sehr gerne abschneiden und den rest die 31 Bit über Horner - Schema berechnen!
Es geht doch um Zweierkomplement? Dann ist das falsch.
 

ocsme

Top Contributor
oh wie Peinlich das habe ich ja gar nicht ausprobiert.
Ich bin davon ausgegangen das wenn ich ein Nummeral im Programm angebe das das selbe ist wie bei Integer.parseInt :-D

Hier die Aufgabenstellung.
Sie sollen ein Programm zu entwickeln, das Binärzahlen bestehend aus den Ziffern 0
und 1 in Dezimalzahlen bestehend aus den Ziffern 0, 1, ... , 9 und
Hexadezimalzahlen, bestehend aus den Ziffern 0, 1, ... , 9, A, B, C, D, E, F
konvertiert. Die Binärzahlen werden dabei immer mit 32 Bit dargestellt, wobei das
erste Bit das Vorzeichen repräsentiert (Zweierkomplementdarstellung)
 

Neumi5694

Top Contributor
Jaaaa... da könntest du komplett an der Aufgabenstellung (die übrigens etwas blöd gestellt ist) vorbeigearbeitet haben.
Dass die Binärzahl 32 Bit lang sein soll, spricht dafür, dass du einen String als Eingabe hast und Zeichen für Zeichen auswerten sollst.
Sobald du die Auswertung des Hexadezimalen machst, musst du halt beim ersten Zeichen darauf achten, ob es größer als 7 ist oder nicht (Stichwort: erstes Bit).
 

ocsme

Top Contributor
Aufgabenstellung war nicht genau!
Er wollte nicht mal einen Algorithmus haben sondern man hätte es auch mit printf ausgeben können oder eben so:

Java:
long master = Long.parseLong(args[0],2);

        if (master > Integer.MAX_VALUE)
            master = Integer.MIN_VALUE-(Integer.MAX_VALUE-master)-1;
       
        System.out.println("Die Variable x hat den Wert:" + master);
        System.out.printf("Die Variable x hat den Wert: %X%n",(int) master);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
MoxMorris Integer.MAX_VALUE und Double.MAX_VALUE Unterschied Java Basics - Anfänger-Themen 3
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
sserio printf integer formatting Java Basics - Anfänger-Themen 17
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
T Java Integer multiplizieren Java Basics - Anfänger-Themen 6
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
StevenGG Java swing "New Integer" Java Basics - Anfänger-Themen 5
C Integer in Vierer-Zahlblöcke aufteilen Java Basics - Anfänger-Themen 11
L integer Java Basics - Anfänger-Themen 6
Zeppi Integer umschreiben Java Basics - Anfänger-Themen 5
rafi072001 Integer Anomalie Java Java Basics - Anfänger-Themen 7
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
D Fibonacci overflow integer Java Basics - Anfänger-Themen 8
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
V int zu Integer und String Java Basics - Anfänger-Themen 6
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
D integer negativen Wert abspeichern Java Basics - Anfänger-Themen 3
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
J Erhöhen eines Values als Integer bei gleichen Keys in HashMap Java Basics - Anfänger-Themen 12
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
J Methoden Equals Methode für Integer und Objekte überschreiben? Java Basics - Anfänger-Themen 9
CptK Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
K Datentypen String zu Integer parsen Java Basics - Anfänger-Themen 2
B Liste von Integer -> Nächster Wert bekommen Java Basics - Anfänger-Themen 5
S Integer aus Array filtern Java Basics - Anfänger-Themen 4
F Referenzvariable vom Typ "Integer" definieren. (Klausuraufgabe) Java Basics - Anfänger-Themen 5
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
B Variablen integer im Array Java Basics - Anfänger-Themen 5
C Liste o.ä. erstellen mit <Integer, <Integer, String> Java Basics - Anfänger-Themen 7
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
D Fehler: String zu Integer Java Basics - Anfänger-Themen 7
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
E Integer und Array übergeben Java Basics - Anfänger-Themen 9
W Fehler bei Integer.parseInt() Java Basics - Anfänger-Themen 4
R String in Integer Java Basics - Anfänger-Themen 11
D Komischer Fehler nach <Integer> List Java Basics - Anfänger-Themen 2
J Integer in Array einlesen Java Basics - Anfänger-Themen 14
J Warum ist das ein Unterschied (Integer / int) Java Basics - Anfänger-Themen 2
H Integer in Datei schreiben Java Basics - Anfänger-Themen 2
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
3 ArrayList Integer Wrapper Klasse als Ersatz für normale Arrays Java Basics - Anfänger-Themen 10
K Methoden Integer runden/aufrunden Java Basics - Anfänger-Themen 2
E Erste Schritte Lower Bounded Wildcards <? super Integer> Java Basics - Anfänger-Themen 1
M Datentypen Integer und Float Konflikt Java Basics - Anfänger-Themen 3
J Integer-Werte in Array ein- bzw. auslesen Java Basics - Anfänger-Themen 7
T Integer Wert in andere Methode übergeben Java Basics - Anfänger-Themen 2
N Probleme bei Speicherung eines Integer-Array in Datei speichern Java Basics - Anfänger-Themen 3
C Zwei Integer Arrays "kombinieren" Java Basics - Anfänger-Themen 10
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
M Höchster Integer aus 9 Zahlen Java Basics - Anfänger-Themen 13
I Klassen Integer von BL in GUI übergeben | Fehler Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
D Datentypen Ein Integer Feld in einen String wandeln ohne Nullenunterdrückung Java Basics - Anfänger-Themen 6
R integer zahlenfolge speichern, ausgeben Java Basics - Anfänger-Themen 1
L Summer aller Integer-Zahlen im Intervall [x,y] Java Basics - Anfänger-Themen 6
K ArrayList<Integer> problem Java Basics - Anfänger-Themen 3
L Vom Benutzer eingebene Integer addieren und ausgeben. Java Basics - Anfänger-Themen 11
S integer absteigend sortieren Java Basics - Anfänger-Themen 2
S ArrayList<ArrayList<Integer>> sortieren Java Basics - Anfänger-Themen 3
T Variablen Integer in Stmt Java Basics - Anfänger-Themen 13
B gemischter string zu integer Java Basics - Anfänger-Themen 22
R Big Integer Java Basics - Anfänger-Themen 8
B Erste Schritte Integer Eingabe über Scanner mit Abfangen von Eingabefehlern Java Basics - Anfänger-Themen 3
B Variablen Wertezuweisung bei integer Java Basics - Anfänger-Themen 5
J Integer Werte in Array einlesen Java Basics - Anfänger-Themen 6
E Integer oder Strings spiegeln (in while loop) Java Basics - Anfänger-Themen 6
D String mit Integer Variablen Namen vergleichen, möglich? Java Basics - Anfänger-Themen 6
G Was passiert bei einem Overflow von zwei Integer Java Basics - Anfänger-Themen 6
H Integer.toString(int i) vs. String.valueOf(int i) Java Basics - Anfänger-Themen 12
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
A Integer aus Stream to Double Java Basics - Anfänger-Themen 7
J Integer.parseInt Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben