Меня спросили об этом в интервью. Предполагая, что int будет 2 байта, то есть 16 бит, интервьюер хотел, чтобы я использовал только 10 бит целого числа, которое в основном ограничивает диапазон int. Остальные 6 бит не будут использоваться, конечно.Как использовать только 10 бит int, который равен 2 байтам?
ответ
Это делается путем маскировки бит. ANDing даст вам результаты. Чтобы дать идею, чтобы получить 8 наименее значимых бит из целого числа, вы должны с 0xff и так далее.
Прошу прощения, может быть, я не был ясен. Позвольте пояснить, цель состоит не в том, чтобы извлечь 10 бит из существующего целого числа. Но на самом деле создайте новый тип данных, скажем, с typedef, который был бы целым числом, способным хранить только 10 бит. – user2311285
Ваш интервьюер, возможно, хотел вам продемонстрировать битовые поля:
struct
{
int a : 10;
} foo;
Кажется странным особенность крикнуть в интервью, но это все, что я могу думать.
И он все еще может не иметь желаемое поведение, как «10 бит» особенность этого будет применяться только к хранению, а не каким-либо операций, которые вы используете его в.
Вы не знакомы с операторами поразрядными? –
Прошу прощения, может быть, я не понял. Позвольте пояснить, цель состоит не в том, чтобы извлечь 10 бит из существующего целого числа. Но на самом деле создайте новый тип данных, скажем, с typedef, который был бы целым числом, способным хранить только 10 бит. – user2311285
Вы уверены, что это C, а не C++? – samgak