C-Syntax: Zuweisung von Zahl in Short-Variable

  • C++/CLI

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    C-Syntax: Zuweisung von Zahl in Short-Variable

    Hallo liebe Paradisvögel,

    ein Kollege bekam eine Hausaufgabe, welche ich ihm beim besten willen nicht erklären kann.

    "Welche dezimalen Werte hätten die jeweiligen Variablen nach den folgenden Zuweisungen?
    Gebe Sie die Variablen mit 'printf("var=%d\n", var)' aus"

    1. short a = 10; mit printf kommt 10 heraus, was ich verstehe. 10 (integer) = 10 (short)
    aber
    2. short b = 010; mit printf kommt 8 heraus. Wieso?

    Ich habe mich grad durch die Themen Convert/Cast/Einerkomplement/Zweierkomplement gewühlt, kam aber auf keine Antwort^^

    wieso wird die dezimale Zahl 010 (oder als was sieht C diese Zahl sonst an?) zu 8, und nicht zu 10 (führende Nullen wegstreichen)?
    Würde er die Zahl als Binär sehen, müsste doch 2 herauskommen?

    Da sie nicht mit "1" beginnt, kann er Sie ja auch nicht als negativ sehen und einen "Fehler" beim zuweisen machen...

    Vielen Dank für eine ausführliche Erklärung ;)
    Mac