Почему я получаю то же значение при печати этого int?

Итак, я просто возился с C и хотел посмотреть, могу ли я присвоить двоичное значение целому числу и использовать функцию printf () для вывода значения со знаком или без знака. Но несмотря на то, что я получаю тот же результат, я думал, что получу половину стоимости печати подписанного по сравнению с беззнаковым. Я использую Code :: blocks и GCC.

Не игнорирует ли printf ()% i &% u и использует ли определение переменной?

Пример кода:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    signed int iNumber = 0b1111111111111111;
    printf("Signed Int : %i\n", iNumber);
    printf("Unsigned Int : %u\n", iNumber);

    return 0;
}

Тот же результат, если я изменю int на unsigned:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    unsigned int iNumber = 0b1111111111111111;
    printf("Signed Int : %i\n", iNumber);
    printf("Unsigned Int : %u\n", iNumber);

    return 0;
}
5
задан ProfessionalAmateur 23 October 2010 в 20:28
поделиться