Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hallo,

ich würde gerne den rest an die erste stelle von einer zahl legen

z.b.

rest=39

zahl= 12345678

ergebnis=3912345678

doch bei der berechnung:

rest*=100000000;

kommt das ergebnis: -394967296 raus

alle variablen sind long

kann es so viele nullen nicht anzeigen oder warum klappt das nicht?!

schlöne grüsse

marko

Hi,

bei deiner Rechnung hat ein Überlauf stattgefunden, da long so große

Zahlen nicht erfassen kann. Bsp.:

Wenn long von -34 bis +34 gehen würde und als Ergebnis 35 rauskäme, dann

wäre der Wert in der long Variable -34.

Versuchs anstatt mit long, mal mit float oder double.

Gruß

Guybrush

danke für deine antwort,

ich habe es mit float und double versucht->geht aber nicht!

es muss doch ne möglichkeit geben so eine zahl anzeigen zu lassen....so lang ist sie nun auch wieder nicht!!

Ja, ist nur ein Überlauf. Schreib doch einfach unsigned long, dann paßt´s doch - Du verlierst dabei nur die negativen Zahlen. Ansonsten müßtest Du entweder eine fertige Bigint-Klasse für übergroße Zahlen verwenden oder einfach selber schreiben (ist eine gute Übung für das Zahlenverständnis bei +-*/).

Originally posted by Marko

danke für deine antwort,

ich habe es mit float und double versucht->geht aber nicht!

es muss doch ne möglichkeit geben so eine zahl anzeigen zu lassen....so lang ist sie nun auch wieder nicht!!

Doch, float und double gehen beide. Wie gibst du die Zahl den aus?

ok alles klar ich habs jetzt!!

@Crush

genau das wars mit dem unsigned, ich habe jetzt unsigned long genommen!!

erst gings trotz dem nicht aber dann habe ich Guybrush Threepwood tipp mit der ausgabe befolgt, ich habe es mit printf ausgegeben bin dann zu cout gewechselt, dann ging es....habe bestimmt bei der formatierten ausgabe was falsch gemacht!!

vielen dank an alle die geantwortet haben!!

:marine

printf("%d",variable);

das wars, wie auch immer.....vielen dank für die hilfe!!

Originally posted by Crush

Ja, ist nur ein Überlauf. Schreib doch einfach unsigned long, dann paßt´s doch - Du verlierst dabei nur die negativen Zahlen. Ansonsten müßtest Du entweder eine fertige Bigint-Klasse für übergroße Zahlen verwenden....

Nicht zwingendermaßen, bei 64 Bit-Architekturen ist es durchaus üblich, dass ein long 64 Bit hat.

Nic

Stimmt. Allerdings hat er auch geschrieben, daß das unsigned das Problem auch beheben konnte, also ist ein 32-Bit-Prozessor eingebaut ... sorry, meistens geh ich von meiner Kiste aus - hab halt dieses mal Glück gehabt =8-) Vielleicht sollte man zukünftig den C++-Postings immer mit sizeof(Datentyp) abchecken ob der Prozessor von 32-Bit abweicht...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.