На самом деле у меня (наверное) "простая" проблема.Так что я не знаю, как привести целое число без знака к целому числу без знака.
Мой код:
signed int entry = 0; printf("Decimal Number : "); scanf("%d", &entry); unsigned int uEntry= (unsigned int) entry; printf("Unsigned : %d\n", uEntry);
Если я отправляю значение без знака на консоль (см. Мою последнюю строку кода), я всегда получаю целое число со знаком.
МожетВы мне помогаете?
Большое спасибо!
С уважением, pro
printf("Unsigned : %u\n", uEntry); // ^^
Вы должны использовать спецификатор %u, чтобы сообщить среде выполнения printf, что uEntry является unsigned int.Если вы используете %d, функция printf будет ожидать int, таким образом, переосмыслите ваш ввод обратно со знаком.
%u
printf
uEntry
unsigned int
%d
int
Добавьте эти две строки в конец вашего кода, и вы поймете, что происходит.
printf("entry: signed = %d, unsigned = %u, hex = 0x%x\n", entry, entry entry); printf("uEntry: signed = %d, unsigned = %u, hex = 0x%x\n", uEntry,uEntry,uEntry);