Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

11

10.01.2010, 15:35

worin liegt jetzt der unterschied? okay ich kann mir das >= sparen, aber sonst?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

10.01.2010, 15:40

Zitat von »"NachoMan"«

worin liegt jetzt der unterschied? okay ich kann mir das >= sparen, aber sonst?


Dank dem >= is dein Code aber eine Endlosschleife ;)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

10.01.2010, 15:41

Zitat von »"dot"«

Zitat von »"NachoMan"«

worin liegt jetzt der unterschied? okay ich kann mir das >= sparen, aber sonst?


Dank dem >= is dein Code aber eine Endlosschleife ;)


erklärung bitte >.<
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

10.01.2010, 15:43

Zitat von »"NachoMan"«

erklärung bitte >.<


Was gibts da groß zu erklären?
irgendwas kleineres / irgendwas gibt 0 und 0 / irgendwas gibt wieder 0...

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

15

10.01.2010, 15:44

Zitat von »"NachoMan"«

Zitat von »"dot"«

Zitat von »"NachoMan"«

worin liegt jetzt der unterschied? okay ich kann mir das >= sparen, aber sonst?


Dank dem >= is dein Code aber eine Endlosschleife ;)


erklärung bitte >.<


Na, überleg mal, wie man mit der Division mit 10 einer positiven Zahl kleiner als 0 werde kann.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

16

10.01.2010, 15:44

bissl verbessert:

Quellcode

1
2
3
4
5
6
7
8
9
10
int integer = 12345;
int i = 0;
if(integer < 0)
cout << "die zahl ist negativ" << endl;

do
{
cout << "stelle " << ++i << ": " << integer%10 << endl;
integer /= 10;
}while(integer)

ahh klar <.< denkfehler sry ich wollt natürlich "größer als" schreiben
man bin ich fertig xD
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

17

10.01.2010, 17:40

ok ich caste es einfach in nen string, dass is am einfachsten
Gewinnen ist, wenn man einmal mehr aufsteht, als man zu Boden geht.

18

10.01.2010, 18:55

Wenn du die Funktionalität ab und zu brauchst, kannst du dir dafür eine Klasse schreiben. Mit einer kleinen Erweiterung kann man auch Zahlensysteme mit einer Basis grösser als 10 oder negative Zahlen unterstützen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <vector>
#include <sstream>

template <unsigned short Base>
class DigitHolder
{
    private:
        typedef std::vector<char> Container;
        Container MyDigits;

    public:
        DigitHolder(unsigned int Number)
        {
            do
                MyDigits.push_back(Number % Base); 
            while ((Number /= Base) > 0);
        }

        unsigned int operator[] (size_t Index) const
        {
            return MyDigits[Index];
        }
    
        size_t GetNbDigits() const
        {
            return MyDigits.size();
        }
        
        std::string ToString() const
        {
            std::stringstream Stream;
            for (Container::const_reverse_iterator Itr = MyDigits.rbegin(); Itr != MyDigits.rend(); ++Itr)
                Stream << static_cast<unsigned int>(*Itr);

            return Stream.str();
        }
};

typedef DigitHolder<10> DecimalDigitHolder;
typedef DigitHolder<2> BinaryDigitHolder;

Anwendung:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>

int main()
{
    // Zahl binär ausgeben

    std::cout << BinaryDigitHolder(42).ToString() << std::endl;

    // Ziffern in umgekehrter Reihenfolge und mit Leerzeichen ausgeben

    DecimalDigitHolder Holder = 1337;
    for (size_t i = 0; i < Holder.GetNbDigits(); ++i)
        std::cout << Holder[i] << ' ';
}

Werbeanzeige