App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Integeradresse in Integer abspeichern
- Ersteller [Wook] Müll
- Erstellt am
[Wook] Müll
Cadet
- Mitglied seit
- 01.10.2003
- Beiträge
- 21
- Renomée
- 0
Hallo,
folgendes Problem:
Ich muss eine Adresse eines Integers z.B. 000C in einen Integer abspeichern. Wie geht das?
Beispiel:
int i = 23;
int j = Der Wert der Adresse von i;
d.h. :
j hat dann den Wert 000C.
Gibt es da vielleicht fertige Methoden?
Vielen Dank für die Hilfe.
Müll
folgendes Problem:
Ich muss eine Adresse eines Integers z.B. 000C in einen Integer abspeichern. Wie geht das?
Beispiel:
int i = 23;
int j = Der Wert der Adresse von i;
d.h. :
j hat dann den Wert 000C.
Gibt es da vielleicht fertige Methoden?
Vielen Dank für die Hilfe.
Müll
UeB
Admiral Special
der addressoberator in c++ ist &;
bsp:
wenn du also schreiben würdest
dann würde j nun die adresse von i enthalten; (da j aber kein pointer ist kannst du nun nicht duch manipulieren von j entwas an i ändern
bsp:
Code:
int a; // das programm legt platz für einen integer in speicher an
int* p = &a; // int* p ist ein pointer auf ein int und enthält die adresse von a; zeigt also auf a.
wenn du also schreiben würdest
Code:
int i = 23;
int j = &i;
Zuletzt bearbeitet:
Devastators
Grand Admiral Special
- Mitglied seit
- 03.06.2001
- Beiträge
- 17.242
- Renomée
- 149
- Standort
- Bochum
- Mein Laptop
- Acer 8730 & 3810T & VN7 791G
- Prozessor
- Intel Q9550
- Mainboard
- -
- Kühlung
- Arctic Freezer 7 Pro
- Speicher
- 4* 1 Gig DC
- Grafikprozessor
- Asus GTX 750TI
- Display
- Asus VW246H 24" FHD
- SSD
- Samsung 850 EVO
- HDD
- 2 * Sata Maxtor 200GB 1 * WD 250 Gig IDE
- Optisches Laufwerk
- Plextor PX750A
- Soundkarte
- -
- Gehäuse
- Antec P180
- Netzteil
- BeQuiet 450Watt Straight Power
- Betriebssystem
- Win7 64
- Webbrowser
- IExplorer 8
- Verschiedenes
- DigiCam: Canon EOS 300D, Canon 50D , Beamer: SanyoZ3 , Camcorder: Canon HF200 HD , PS3 , Wii
wenn Du zukünftig etwas mehr mit C arbeiten willst, würde ich Dir dringens den Umgang mit Pointern allgemein ans herzen legen, sonst kommst Du noch in Teufels Küche
Der Adressoperator ist korrekterweise das '&' und die "Umkehrfunktion ist dann das ' * ' (Stern)
int i = 5:
int *j = &i // j ist als Pointer deklariert und zeigt auf die Adresse von i
jetzt kommt das "witzige"
*j = 10
nun hat i den Wert 10 bekommen und der Pointer j zeigt immernoch auf die selbe Adresse ....
Der Adressoperator ist korrekterweise das '&' und die "Umkehrfunktion ist dann das ' * ' (Stern)
int i = 5:
int *j = &i // j ist als Pointer deklariert und zeigt auf die Adresse von i
jetzt kommt das "witzige"
*j = 10
nun hat i den Wert 10 bekommen und der Pointer j zeigt immernoch auf die selbe Adresse ....
[Wook] Müll
Cadet
- Mitglied seit
- 01.10.2003
- Beiträge
- 21
- Renomée
- 0
Äh. Das Problem sind nicht die Zeiger... Das sit schon klar. Nein das Problem ist die Adresse in dem Integer abzuspeichern. int i = &j geht nämlich nicht, da ja wir gesagt i kein zeiger ist also.... wie Speicher ich die Adresse nun ab. Nicht das nachher aus
int u = 000C; u = C wird. Das Problem hier sind nämlich die Nullen. Da die Adresse von C++ nach Java geht und zurück muss das schon komplett sein.
int u = 000C; u = C wird. Das Problem hier sind nämlich die Nullen. Da die Adresse von C++ nach Java geht und zurück muss das schon komplett sein.
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.665
- Renomée
- 1.249
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Hmm Führende Nullen kann man doch weglassen?! Sag jetzt nicht, bei Java sind die wichtig.
Die Nullen mitzuspeichern macht keinen Sinn und wäre auch nicht möglich, denn 001 = 1 für Integer.
Da du jedoch weißt wie groß die Adresse ist (nämlich stets 32bit) kannst du die Nullen ja später in Java dazudenken.
Falls es dir leichter erscheint das Ganze mit Nullen zu übergeben, dann bleibt dir wohl nichts anderes übrig als die Adresse als String zu übergeben.
Hier ein Beispiel wie es gehen kann:
Hoffe das hilft.
Da du jedoch weißt wie groß die Adresse ist (nämlich stets 32bit) kannst du die Nullen ja später in Java dazudenken.
Falls es dir leichter erscheint das Ganze mit Nullen zu übergeben, dann bleibt dir wohl nichts anderes übrig als die Adresse als String zu übergeben.
Hier ein Beispiel wie es gehen kann:
Code:
#include <iostream>
#include <sstream>
int main()
{
int x = 123;
int *xp = &x;
std::stringstream ss;
ss << xp;
std::cout << x << std::endl
<< ss;
return 0;
}
Hoffe das hilft.
Zuletzt bearbeitet:
lol Pointer in nen Int reinpacken, siehe mal zu, dass du da mal nicht auf die Fresse fliegst, die beiden sind nämlich gerne verschieden lang, z.B. i8085: int = 8 bit, Adresse = 16 bit, AMD64: int = 32 bit, Adresse = 64 bit.
Und führende Nullen können schon mal wichtig werden,
int i = 1234;
und
int i = 01234;
ergeben verschiedene Werte für i
Und führende Nullen können schon mal wichtig werden,
int i = 1234;
und
int i = 01234;
ergeben verschiedene Werte für i
lol Pointer in nen Int reinpacken, siehe mal zu, dass du da mal nicht auf die Fresse fliegst, die beiden sind nämlich gerne verschieden lang, z.B. i8085: int = 8 bit, Adresse = 16 bit, AMD64: int = 32 bit, Adresse = 64 bit.
Und führende Nullen können schon mal wichtig werden,
int i = 1234;
und
int i = 01234;
ergeben verschiedene Werte für i
1. ist er sicher nur auf i386 unterwegs, und 2. haben führende 0en keinen Einfluss! 012345 ist das selbe wie 12345.
PuckPoltergeist
Grand Admiral Special
Ja, aber es ist extrem schlechter Stil, so unportabel zu schreiben. Wir sind hier schließlich nicht bei Microsoft.1. ist er sicher nur auf i386 unterwegs,
- Mitglied seit
- 16.11.2001
- Beiträge
- 21.665
- Renomée
- 1.249
- Standort
- München
- Aktuelle Projekte
- World Community Grid
- Lieblingsprojekt
- Folding@Home
- Meine Systeme
- AMD Ryzen 9 5950X
- BOINC-Statistiken
- Folding@Home-Statistiken
- Prozessor
- AMD Ryzen 9 5950X
- Mainboard
- ASUS TUF Gaming X570-Pro [WI-FI]
- Kühlung
- be quiet! Shadow Rock 3
- Speicher
- 4x 16GB DDR4-3200 Corsair Vengeance LPX
- Grafikprozessor
- ASRock Radeon RX 550 Phantom Gaming Aktiv 2GB
- Display
- LG 27UL850-W, 27"
- SSD
- Samsung 980 PRO 2TB, Samsung 840 EVO 500GB
- HDD
- Seagate Barracuda 7200.14 3TB SATA3
- Optisches Laufwerk
- Samsung SH-S183A SATA schwarz (im externen Gehäuse)
- Gehäuse
- be quiet! Silent Base 802 schwarz
- Netzteil
- be quiet! Straight Power 11 Platinum 550W
- Tastatur
- Logitech G613 Lightspeed
- Maus
- Logitech M510
- Betriebssystem
- Ubuntu Linux 22.04
- Webbrowser
- Vivaldi
- Internetanbindung
-
▼100 MBit
▲40 MBit
Auch das Windows SDK von Microsoft kennt spezielle Typen für Pointer, um bei sowas nicht auf die Fresse zu fliegen und der Compiler von MS spuckt auch fleißig Warnungen aus, wenn man versucht einen Pointer in einen int zu quetschen.Ja, aber es ist extrem schlechter Stil, so unportabel zu schreiben. Wir sind hier schließlich nicht bei Microsoft.
Aber ja, es ist schlechter Stil.
PuckPoltergeist
Grand Admiral Special
Auch das Windows SDK von Microsoft kennt spezielle Typen für Pointer, um bei sowas nicht auf die Fresse zu fliegen und der Compiler von MS spuckt auch fleißig Warnungen aus, wenn man versucht einen Pointer in einen int zu quetschen.
Aber ja, es ist schlechter Stil.
Mittlerweile müssen sie ja auch (wieder) unterschiedliche Architekturen unterstützen, die ihre verschiedenen Eigenheiten haben. Aber die späte Unterstützung von AMD64 lag ja nicht zuletzt an der unsauberen Programmierung. So lange man sich immer nur auf x86 bewegt hatte, tat das nicht sonderlich weh. Nach dem Entschluss auch andere Architekturen (IA64, AMD64) zu unterstützen, ist da wohl so manche Codestelle böse aufgestoßen. Passiert übrigens auch auf Linux immer wieder so manchen "Hobbyprogrammierern", welche sich normalerweise nur auf x86 aufhalten. Ich denke da nur an Reiser4.
Nachtschicht
Admiral Special
Also in C kennzeichnet die führende Null eine Oktalzahl und da kann man dieser schon einen gewissen Einfluss zubilligen1. ist er sicher nur auf i386 unterwegs, und 2. haben führende 0en keinen Einfluss! 012345 ist das selbe wie 12345.
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 227
- Antworten
- 5
- Aufrufe
- 1K
- Antworten
- 0
- Aufrufe
- 178
- Antworten
- 13
- Aufrufe
- 710