Является ли эта операция действительной каждый раз?
unsigned long long p64 = 0;
short int x = 7;
p64 = x;
Итак, для этого примера переменная p64 всегда будет этой?
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111
, что означает
(p64 == 7)
Я задаю этот вопрос, потому что иногда биты после 0111 становятся равными всем 1, а не 0. Но компилятор gcc не выдает предупреждений, поэтому эта операция допустима каждый раз?Есть ли у вас какие-либо решения для преобразования 16-битных переменных в 64-битные переменные?