Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #pragma warning(disable:4996)
  5. #pragma warning(disable:4244)
  6. #define N 16
  7.  
  8. void shen(int b){
  9. char a[N];
  10. int i;
  11.  
  12. for (i=N-1; i>=0; i--, b/=16)
  13. a[i] = (b%16 < 10) ? b%16+'0' : b%16 - 10 + 'A';
  14.  
  15. do{
  16. i++;
  17. }while (a[i]=='0');
  18. printf("0x");
  19. while (i<N){
  20. printf("%c",a[i]);
  21. i++;
  22. }
  23.  
  24. }
  25. int dv(int b,char a[],int s){
  26. int i;
  27. for (i=s-1; i>=0;i--,b/=2) a[i] = b%2;
  28. return a[s];
  29. }
  30. /*
  31. int rev(char a[],int s){
  32. char x[8];
  33. int i;
  34.  
  35. for (i=0;i<8;i++) x[7-i]=a[i];
  36. for (i=0;i<8;i++) a[i]=x[i];
  37. for (i=8;i<s;i++) x[15-i]=a[i];
  38. for (i=8;i<s;i++) a[i]=x[i-8];
  39. return a[s];
  40. }
  41.  
  42. int des(char a[],int s){
  43. int i,sum=0;
  44. for(i=s-1;i>-1;i--){
  45. if (a[i]== 1)
  46. {
  47. sum = sum + pow(2,(s-(i+1)));
  48. }
  49. }
  50. return sum;
  51. }
  52. */
  53. int checkbit( int value, int position) { // proverka bita
  54. int result;
  55. if ((value & (1 << position)) == 0) {
  56. result = 0;
  57. } else {
  58. result = 1;
  59. }
  60. return result;
  61. }
  62.  
  63. int revbit (int x){ // bitovaia
  64. int d = 0,vr = 0, i = 8;
  65. while(i<16){
  66. vr = checkbit(x,i);
  67. //printf("==%i ",vr);
  68. vr = vr << (23-i);
  69. //printf("%i\n",vr);
  70. d = d | vr;
  71. i++;
  72. }
  73. i=0;
  74. while(i<8){
  75. vr = checkbit(x,i);
  76. //printf("==%i ",vr);
  77. vr = vr << (7-i);
  78. //printf("%i\n",vr);
  79. d = d | vr;
  80. i++;
  81. }
  82.  
  83. //printf("%i\n",d);
  84.  
  85. return d;
  86. }
  87.  
  88.  
  89.  
  90.  
  91. int main (void){
  92. typedef unsigned int integer_t;
  93. integer_t n,i;
  94. char v[N];
  95. scanf("%i",&n);
  96. printf("%i = ",n);
  97. shen(n);
  98. printf(" = ");
  99. dv(n,v,N);
  100. for (i=0;i<N;i++)
  101. {
  102. if (i== 8) printf(" ");
  103. printf("%i",v[i]);
  104. }
  105.  
  106. //!!!!!!!!!!!!!!!
  107.  
  108. n=revbit(n);
  109.  
  110.  
  111. printf("\n"); //!!!!!!!!!!!!!!!!
  112.  
  113. printf("%i = ",n);
  114. shen(n);
  115. printf(" = ");
  116. dv(n,v,N);
  117. for (i=0;i<N;i++)
  118. {
  119. if (i== 8) printf(" ");
  120. printf("%i",v[i]);
  121. }
  122. printf("\n");
  123. return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement