Guest User

Untitled

a guest
Jun 22nd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. Initial --> 1000 0011 0100 0010
  2.  
  3. Final --> 1010 0000 1101 0000
  4.  
  5. __asm
  6. {
  7. rol number,1
  8. }
  9.  
  10. template <typename INT>
  11. T rol(T val) {
  12. return (val << 1) | (val >> (sizeof(T)*CHAR_BIT-1));
  13. }
  14.  
  15. unsigned ror(unsigned x, int L, int N)
  16. {
  17. unsigned lsbs = x & ((1 << L) - 1);
  18. return (x >> L) | (lsbs << (N-L));
  19. }
  20.  
  21. #include <bitset>
  22. #include <iostream>
  23.  
  24. template <std::size_t N>
  25. inline void
  26. rotate(std::bitset<N>& b, unsigned m)
  27. {
  28. b = b << m | b >> (N-m);
  29. }
  30.  
  31. int main()
  32. {
  33. std::bitset<8> b(15);
  34. std::cout << b << 'n';
  35. rotate(b, 2);
  36. std::cout << b << 'n';
  37.  
  38. return 0;
  39. }
  40.  
  41. #include <bitset>
  42. #include <iostream>
  43.  
  44. template <std::size_t N>
  45. inline void
  46. rotate(std::bitset<N>& b, unsigned m)
  47. {
  48. b = b << m | b >> (N-m);
  49. }
  50.  
  51. int main()
  52. {
  53. std::bitset<8> b(15);
  54. std::cout << b << 'n';
  55. rotate(b, 2);
  56. std::cout << b << 'n';
  57.  
  58. return 0;
  59. }
  60.  
  61. #include <bitset>
  62. #include <iostream>
  63.  
  64. template <std::size_t N>
  65. inline void
  66. rotate(std::bitset<N>& b, unsigned m)
  67. {
  68. b = b << m | b >> (N-m);
  69. }
  70.  
  71. int main()
  72. {
  73. std::bitset<8> b(15);
  74. std::cout << b << 'n';
  75. rotate(b, 2);
  76. std::cout << b << 'n';
  77.  
  78. return 0;
  79. }
  80.  
  81. #include <bitset>
  82. #include <iostream>
  83.  
  84. template <std::size_t N>
  85. inline void
  86. rotate(std::bitset<N>& b, unsigned m)
  87. {
  88. b = b << m | b >> (N-m);
  89. }
  90.  
  91. int main()
  92. {
  93. std::bitset<8> b(15);
  94. std::cout << b << 'n';
  95. rotate(b, 2);
  96. std::cout << b << 'n';
  97.  
  98. return 0;
  99. }
  100.  
  101. #include <bitset>
  102. #include <iostream>
  103.  
  104. template <std::size_t N>
  105. inline void
  106. rotate(std::bitset<N>& b, unsigned m)
  107. {
  108. b = b << m | b >> (N-m);
  109. }
  110.  
  111. int main()
  112. {
  113. std::bitset<8> b(15);
  114. std::cout << b << 'n';
  115. rotate(b, 2);
  116. std::cout << b << 'n';
  117.  
  118. return 0;
  119. }
  120.  
  121. unsigned int rotate_right(unsigned int x)
  122. {
  123. return (x>>1 | (x&1?0x80000000:0))
  124. }
  125.  
  126. unsigned short rotate_right(unsigned short x) { /* etc. */ }
  127.  
  128. x=(x>>1 | x<<7);
  129.  
  130. #define ROTATE_RIGHT(x) ( (x>>1) | (x&1?0x8000:0) )
Add Comment
Please, Sign In to add comment