Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. /*void ctrl_c_handler(int signum) {
  9. printf("\nНе-не-не! Даёшь пиченку!\n");
  10. }
  11.  
  12. void ctrl_z_handler(int signum) {
  13. printf("\nНе-не-не! Даёшь пиченку!\n");
  14. }*/
  15.  
  16. int main()
  17. {
  18. setlocale(LC_ALL, "Russian");
  19. /*
  20.  
  21. char buf[BUFSIZ];
  22.  
  23. if (signal(SIGINT, ctrl_c_handler) == SIG_ERR) return 1;
  24. while (printf("Хачю амерекансую пиченку! ") && fgets(buf, BUFSIZ, stdin) && strcmp("cookie\n", buf));
  25.  
  26. if (signal(SIGINT, ctrl_z_handler) == SIG_ERR) return 1;
  27. while (printf("Хачю амерекансую пиченку! ") && fgets(buf, BUFSIZ, stdin) && strcmp("cookie\n", buf));
  28. */
  29. int o = 0;
  30. int step = 0;
  31. long double l = 0;
  32. int x = 0;
  33. char str[32];
  34. int y = 0;
  35. long int OTVET = 0;
  36. long long int w = pow(10, 10);
  37. long float q = 0;
  38. long long int r = 0;
  39. int k = 0;
  40. int p = 0;
  41. int i = 0;
  42. int sp = 0;
  43. int j = 0;
  44. int H = 16;
  45. int m = 0;
  46. int N = 0;
  47. cout « " Введите количество элементов масиива (от 1 до 5) " « endl;
  48. cin » N;
  49. while (N < 1 || N > 5) {
  50. cout « "N выходит за рамки указанные в условии" « endl;
  51. cout « " Введите количество элементов масиива (от 1 до 5) " « endl;
  52. cin » N;
  53. }
  54. int* a = new int[N]; // [1, 5]
  55. int* A = new int[N];
  56. for (i = 0; i < N; i++) {
  57. cout « " Введите число от 1000 до FFFF " « endl;
  58. cin » hex » a[i];
  59. while (a[i] < 4096 || a[i] > 65535) {
  60. cout « "Число выходит за границы " « endl;
  61. cout « " Введите число от 1000 до FFFF " « endl;
  62. cin » hex » a[i];
  63. }
  64. // if (a[i] == "^Z")
  65. A[i] = a[i];
  66. }
  67. /*for (i = 0; i < N; i++) {
  68. while (a[i] > 0) {
  69. a[i] = a[i] / 10;
  70. b[i]++;
  71. }
  72. }*/
  73. int** c = new int* [N];
  74. for (i = 0; i < N; i++) {
  75. c[i] = new int[H];
  76. }
  77. for (i = 0; i < N; i++) {
  78. for (j = 0; j < H; j++) {
  79. c[i][j] = 0;
  80.  
  81. }
  82. }
  83. for (i = 0; i < N; i++) {
  84. while (a[i] >= 2) {
  85. for (j = 0; j < H; j++) {
  86. c[i][j] = a[i] % 2;
  87. a[i] = a[i] / 2;
  88. }
  89. }
  90. }
  91. for (i = 0; i < N; i++) {
  92. for (j = H - 1; j >= 0; j--) {
  93. cout « c[i][j];
  94. }
  95. cout « endl;
  96. }
  97. int* g = new int[N];
  98. for (i = 0; i < N; i++) {
  99. g[i] = 0;
  100. }
  101. for (i = 0; i < N; i++) {
  102. for (j = H - 1; j >= H - 1; j--) {
  103. cout « "Знак " « i + 1 « "-го " « " числа " « " " « c[i][j] « ": ";
  104. g[i] = c[i][j];
  105. }
  106. }
  107. for (i = 0; i < N; i++) {
  108. cout « "Мантисса " « i + 1 « "-го " « " числа " « " ";
  109. for (j = H - 7; j >= 0; j--) {
  110. k = j;
  111. cout « c[i][j];
  112. m = m + c[i][j] * pow(2, k);
  113. }
  114. cout « " в 2-й СС " « "или " « m « " в 10-й СС";
  115. cout « endl;
  116. m = 0;
  117. }
  118. for (i = 0; i < N; i++) {
  119. cout « "Порядок " « i + 1 « "-го " « " числа " « " ";
  120. for (j = H - 2; j >= H - 6; j--) {
  121. k = j - 10;
  122. cout « c[i][j];
  123. p = p + c[i][j] * pow(2, k);
  124. }
  125. cout « " в 2-й СС " « "или " « p « " в 10-й СС";
  126. cout « endl;
  127. sp = p - 15;
  128. /* if ( g[i] > 0) {
  129. for (i = 0; i < N; i++) {
  130. for (j = H - 7; j >= 0; j--) {
  131. w = w + c[i][j] * pow(10, (j + 1));
  132. }
  133. w = -((w) * pow(10, sp) / pow(10, H - 6));
  134. cout « fixed « setprecision(11) « w « endl;
  135. while (w > -10 && w < 10) {
  136. w = w * 2;
  137. if (w > 1 || w < -1) w = w - (int)w;
  138. }
  139. cout « fixed « setprecision(11) « (w - (int)w) « endl;
  140. }
  141. }
  142. else {
  143. for (i = 0; i < N; i++) {
  144. for (j = H - 7; j >= 0; j--) {
  145. w = w + pow(10, (j + 1));
  146. }
  147. w = ((w ) * pow(10, sp) / pow(10, H - 6));
  148. cout « fixed « setprecision(11) « w « endl;
  149. while (w > -10 && w < 10) {
  150. w = w * 2;
  151. if (w > 1 || w < -1) w = w - (int)w;
  152. }
  153. cout « fixed « setprecision(11) « (w - (int)w) « endl;
  154. }
  155. }
  156. */ if (g[i] != 0) {
  157. for (i = 0; i < N; i++) {
  158. for (j = H - 7; j >= 0; j--) {
  159. w = w + c[i][j] * pow(10, j);
  160. }
  161. q = (w / pow(10, 10));
  162. l = q * pow(10, sp);
  163. cout.precision(15);
  164. for (int oo = 0; oo < 10; oo++) {
  165. OTVET = (int)l % 10;
  166. r = r + OTVET *
  167.  
  168. pow(2, step);
  169. step++;
  170. l = l / 10;
  171. }
  172. cout « endl « " При переводе исходного числа из шестнадцатеричной СС в формате половинной точности в десятичную СС соотвествует значению " « r « endl;
  173. /* w = w + pow(10, H - 5);
  174. w = -(w * pow(10, sp) / pow(10, H - 6));
  175. cout « w « endl;
  176. for (i = 0; i < N; i++) {
  177. for (j = H - 7; j >= 0; j--) {
  178. p = pow(10, j);
  179. o = o + ((int)w / pow(10, j)) * pow(2, j - 1);
  180. w = (int)w % p;
  181. }
  182. }
  183. cout « o « endl;
  184. */
  185. }
  186. }
  187. else {
  188. for (i = 0; i < N; i++) {
  189. for (j = H - 7; j >= 0; j--) {
  190. w = w + c[i][j] * pow(10, j);
  191. }
  192. q = (w / pow(10, 10));
  193. l = q * pow(10, sp);
  194. cout.precision(15);
  195. for (int oo = 0; oo < 10; oo++) {
  196. OTVET = (int)l % 10;
  197. r = r + OTVET * pow(2, step);
  198. step++;
  199. l = l / 10;
  200. }
  201. cout « endl « " При переводе исходного числа из шестнадцатеричной СС в формате половинной точности в десятичную СС соотвествует значению " « r « endl;
  202. /* w = w + pow(10, H - 5);
  203. w = ((w * pow(10, sp)) / pow(10, H - 6));
  204. cout « w « endl;
  205. for (i = 0; i < N; i++) {
  206. for (j = H - 7; j >= 0; j--) {
  207. p = pow(10, j);
  208. y = (int)w /pow(10, j);
  209. o = o + y * pow(2, j - 1);
  210. w = (int)w % p;
  211. }
  212. }
  213. cout « o « endl;
  214. */
  215. }
  216. }
  217. p = 0;
  218. }/*
  219. for (i = 0; i < N; i++) {
  220. for (j = 0; j < H; j++) {
  221. g[i][j] = 0;
  222. }
  223. }*/
  224.  
  225. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement