Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. Для написания программы, меняющей четвертый и тридцатый бит в числе, были выбраны маски для четвертого бита — (1<<4), для тридцатого бита — (1<<30), и маска для сохранения битов в других разрядах — ((1<<4)|(1<<30)). Количество позиций для сдвига было выбрано равным 26, так как между четвертым и тридцатым битом находится двадцать шесть разрядов. Значение перменной b было выбрано, так чтобы биты в тридцатом и четвертом разряде имели разные значения. В результате была написана программа со следующим исходным кодом:
  2. int main()
  3. {
  4. int a, b = 0xFFFF0000;
  5. a = (b & (1<<4)) << 26 |
  6. (b & (1<<30)) >> 26 |
  7. (b ^ ((1<<4)|(1<<30)) );
  8. return 0;
  9. }
  10. При выполнении программы число 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