[SOLVED] unsigned int runterzählen??
-
Quellcode schrieb:
wie wärs mit > -1
Ich tipp jetzt einfach mal dass er da sich wegen Vergleich von vozeichenlosen und vorzeichenbehafteten beschweren würde ...
-
Was willst du überhaupt machen? Eine Endlosschleife geht auch einfacher.
-
confussball schrieb:
Was willst du überhaupt machen? Eine Endlosschleife geht auch einfacher.
Von td::numeric_limits<unsigned>::max() bis 0 runterzählen
-
for (unsigned i = wert; i > reinterpret_cast<unsigned>(-1); --i)
-
kann man die größe des unsigned nicht einfach mit sizeof() festlegen und dann mit normalen integerwerten runterzählen?
-
unsigned i = td::numeric_limits<unsigned>::max() + 1; while (i --> 0) { }
-
confussball schrieb:
[cpp]unsigned i = std::numeric_limits<unsigned>::max() + 1;
while (i --> 0)
{
}[/cpp]Ja und wie setzt du das --> um?
@helferlein: Also mein GCC kann das nicht casten!
-
Und wieso machst du nicht einfach folgendes:
for(unsigned int ui = /* Startwert */; ui > 0; --ui) { /* irgendetwas am besten eine Funktion */ } /* Nochmals was für die Null */
Grüssli
-
Dravere schrieb:
Und wieso machst du nicht einfach folgendes:
for(unsigned int ui = /* Startwert */; ui > 0; --ui) { /* irgendetwas am besten eine Funktion */ } /* Nochmals was für die Null */
Grüssli
Weil mir das noch unschöner als diese Behelfslösung vorkommt:
unsigned j=1000; while(true) { j--; /*genialitäten*/ if(!j) break; };
Ich dachte halt dass "man" das irgendwie eleganter macht...
//Edit: Ty@all
-
Naja, du könntest auch das folgende machen:
unsigned int ui /* Startwert */; do { --ui; // Mach etwas. } while(ui != 0);
Allerdings fehlt dir dann am oberen Rand eine Zahl. Müsstest also Code vorher ausführen, anstatt bei mir erst danach.
Grüssli
-
confussball schrieb:
while (i --> 0) { }
… Wow. Irreführende, aber dann auch wieder erstaunlich angebrachte Juxtaposition.
-
Besser:
unsigned i = WERT; do { // blubb } while (i --> 0);
-
Dravere schrieb:
Naja, du könntest auch das folgende machen:
unsigned int ui /* Startwert */; do { --ui; // Mach etwas. } while(ui != 0);
Allerdings fehlt dir dann am oberen Rand eine Zahl. Müsstest also Code vorher ausführen, anstatt bei mir erst danach.
Grüssli
Ah danke, das sieht bis jetzt am besten aus... Jedoch muss man wohl startwert+1 machen da sonst wieder die 0 nicht dabei ist wenn man vor dem dekrimieren "was macht"
-
Konrad Rudolph schrieb:
confussball schrieb:
while (i --> 0) { }
… Wow. Irreführende, aber dann auch wieder erstaunlich angebrachte Juxtaposition.
Ah! Juxtraposition!!! Nice ui-- > 0 Jetzt verstehe ich ^^ Dann nehm ich wohl das!!!
-
for(unsigned i=start; i --> 0;) { }
Ich glaub mehr ist nicht rauszuholen Tyvm!
-
Juxtraposition? -->??
*Tuut tuut* bahnhof
-
Nabend,
Quellcode schrieb:
Juxtraposition? -->??
*Tuut tuut* bahnhofhttp://de.wikipedia.org/wiki/Juxtaposition
gruss
v R
-
-
Oh...
Da hab ich shcon jahre lang juxtapositioniert und wusste es gar nicht...Aber, wie ist das zu verstehen in c++ i liegt nahe bei 0 ist es aber dennoch nicht?
in der for schleife hieße es ja dann:
für i=start bis i sowas-ähnliches-dennoch-nicht-dasselbe-wie 0 mache...
Wann hört er denn da auf, und wann steht fest dass i "sowas-ähnliches-dennoch-nicht-dasselbe-wie" 0 ist
-
Quellcode schrieb:
Oh...
Da hab ich shcon jahre lang juxtapositioniert und wusste es gar nicht...Aber, wie ist das zu verstehen in c++ i liegt nahe bei 0 ist es aber dennoch nicht?
in der for schleife hieße es ja dann:
für i=start bis i sowas-ähnliches-dennoch-nicht-dasselbe-wie 0 mache...
Wann hört er denn da auf, und wann steht fest dass i "sowas-ähnliches-dennoch-nicht-dasselbe-wie" 0 ist
Ich versteh nicht, was du meinst. Dort steht "i-- > 0". Sobald i gleich 0 ist,
wird die Schleife beendet.gruss
v R