Вот пример:Как C хранит отрицательные числа в подписанных целых числах без знака?
#include <stdio.h>
int main()
{
int x=35;
int y=-35;
unsigned int z=35;
unsigned int p=-35;
signed int q=-35;
printf("Int(35d)=%d\n\
Int(-35d)=%d\n\
UInt(35u)=%u\n\
UInt(-35u)=%u\n\
UInt(-35d)=%d\n\
SInt(-35u)=%u\n",x,y,z,p,p,q);
return 0;
}
Выход:
Int(35d)=35
Int(-35d)=-35
UInt(35u)=35
UInt(-35u)=4294967261
UInt(-35d)=-35
SInt(-35u)=4294967261
ли это важно, если я объявляю значение, как знаком или без знака Int? Потому что C на самом деле заботится только о том, как я читаю значение из памяти. Пожалуйста, помогите мне понять это, и я надеюсь, что вы докажете, что я неправ.
Это не C, а конкретный компьютер, на котором хранятся номера. Стандарт C99 только документирует набор свойств их поведения. –