Как создать маску машинно-независимым способом?
Поэтому я практикую некоторые вопросы по собеседованию по программированию и наткнулся на этот образец PDF-файла, который рекомендует "Понять, как использовать маски и создавать их независимо от машины". Но это не говорит о разнице между машинно-зависимой и машинно-независимой маской.
Я обычно просто вычисляю целое число, которое предоставляет маску, которую я хочу, например, если я хочу только последние 4 бита, которые я бы сделал:
int y = x & 15;
Я не понимаю, почему это зависит от машины, если это так.
Итак, что является примером создания маски, которая не зависит от машины? И каков пример создания маски, которая зависит от машины?
Возможно, они говорят о том, что если вам нужна маска для чего-то, что не является целым числом, в этом случае мой подход не сработает (мне никогда не требовалась маска для чего-либо, кроме целых чисел)?
1 ответ
Я считаю, что "машинно-независимый" здесь означает, что ваш код должен выполнять желаемую операцию (например, маску и сдвиг) независимо от компилятора и / или машины, на которой он работает. Например, разные компиляторы и системы по-разному обрабатывают длину типов данных. Если вы напишите битовое смещение в целых числах, которое предполагает размер 4 байта, это не будет "машинно-независимым". Некоторые компиляторы обрабатывают целые как 8 байтов.