Прошу помощи.
1)Не понимаю почему значение переменной val, после выплнения функции find_0x7e не изменяется?
Ведь передаю параметр в нее по ссылке.
2)Есть ли способ в переменну типа char записать старшие 8 бит переменной типа инт?
char data;
data = val; // в этом случае записывается младший байт
// вывод двоичного представления числа типа int
void print_bin (int num)
{
for (int i = 0; i < sizeof(int)*8; i++)
{
if ((num<<i) & 0x80000000)
printf("1");
else
printf("0");
}
printf("\n");
}
// поиск флага 0x7E. После выполнения функции, в старшем байте будет 0x7e
void find_0x7e (int *num)
{
int i = 0;
while ( ((*num << i++) & 0x7e000000) != 0x7e000000 );
}
int main(int argc, char *argv[])
{
int val = 0x00003f55;
char data = 0;
printf("val = 0x%x\n", val);
print_bin(val);
find_0x7e(&val);
print_bin(val);
return 0;
}