Как вырезать из длинных N бит, чтобы получить int и cout (и получить читаемый int)? СтараюсьКак вырезать из длинных N бит, чтобы получить int и cout (и получить читаемый int)?
int count = sizeof(long) - sizeof(int);
int int_val =(long_val>> (sizeof(long) - count));
Но получить horible COUT ... Что мне делать - как вырезанные из длинных N битов, чтобы получить Int и COUT его (и получить читаемый Int)?
Предполагая, что 'long' длиннее' int' (whi ch - плохое предположение; они часто имеют одинаковую длину), какие биты вы хотите: высокие или низкие? –
Обратите внимание, что ваша величина сдвига равна 'sizeof (l) - (sizeof (l) - sizeof (i))'; если 'long' - 64 бита, а' int' - 32 бита, то есть '32'; если 'long' и' int' равны 32 битам, результат равен _still_ '32'. Но в последнем случае это кажется неправильным ... – sarnold
[Какова основная проблема, которую вы пытаетесь решить здесь?] (Http://meta.stackexchange.com/questions/66377/what-is-the-xy- проблема) – Johnsyweb