Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Для написания программы, меняющей четвертый и тридцатый бит в числе, были выбраны маски для четвертого бита — (1<<4), для тридцатого бита — (1<<30), и маска для сохранения битов в других разрядах — ((1<<4)|(1<<30)). Количество позиций для сдвига было выбрано равным 26, так как между четвертым и тридцатым битом находится двадцать шесть разрядов. Значение перменной b было выбрано, так чтобы биты в тридцатом и четвертом разряде имели разные значения. В результате была написана программа со следующим исходным кодом:
- int main()
- {
- int a, b = 0xFFFF0000;
- a = (b & (1<<4)) << 26 |
- (b & (1<<30)) >> 26 |
- (b ^ ((1<<4)|(1<<30)) );
- return 0;
- }
- При выполнении программы число 0xFFFF0000 (1111 1111 1111 1111 0000 0000 0000 0000) было преобразовано к числу 0xBFFF0010 ( 1101 1111 1111 1111 0000 0000 0001 0000), что является предполагаемым результатом работы программы.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement