Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Перевод чилса в другую систему счисления
- Тестовые данные
- ввод вывод
- 10, 2 1010
- 16, 8 20
- 5, 8 5
- 6, 2 110
- 26, 16 1A
- 456, 2 111001000
- */
- #include "stdafx.h"
- #include "iostream"
- #include <windows.h>
- #include <conio.h>
- using namespace std;
- void Translate(int number, int a, char c[]);
- void Return();
- void Initialization() {
- int number = 0; int a = 0; char c[256]; // число, система сч., массив для записи ответа
- cout << "Enter number" << endl;
- cin >> number;
- cout << "Enter the system to translate" << endl;
- cin >> a;
- Translate(number, a, c);
- Return();
- }
- // Повторный запуск программы
- void Return() {
- cout << endl << "----------------------------" << endl;
- cout << "Return? (y) (n)" << endl;
- switch (_getch()) {
- case 'y':Initialization();
- case 'n':exit(0);
- default:Return();
- }
- }
- // Вывод числа
- void Output(char c[], int n) {
- for (int i = 0; i < n/2; i++) {
- char buff = c[i];
- c[i] = c[n - i - 1];
- c[n - i - 1] = buff;
- }
- for (int i = n; i > 0; i--) {
- if (c[i - 1] >= 10) {
- c[i - 1] = c[i - 1] + 'A' - 10;
- //printf_s("%c", (c[i - 1] + 'A' - 10));
- //switch (c[i - 1]) {
- //case 10:cout << "A"; break; // Вывод для 16 с.сч.
- //case 11:cout << "B"; break;
- //case 12:cout << "C"; break;
- //case 13:cout << "D"; break;
- //case 14:cout << "E"; break;
- //case 15:cout << "F"; break;
- //}
- }
- else {
- //printf_s("%d", c[i - 1]);
- /*cout << c[i - 1];*/
- }
- }
- }
- //Перевод числа
- void Translate(int number, int a, char c[]) {
- int i = 0; //счётчик длины числа
- for (i = 0; number != 0; i++) {
- c[i] = number % a;
- number /= a;
- }
- Output(c, i);
- }
- int main()
- {
- Initialization();
- getchar();
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement