Форум программистов, компьютерный форум CyberForum.ru

перевод из десятичной в двоичную - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Соединить 2 упорядоченных массива. http://www.cyberforum.ru/cpp-beginners/thread94520.html
Соединить 2 упорядоченных массива. X(1)<=X(2)<=X(3) и Y(1)<=Y(2)<=Y(3) в массив Z(1)<=Z(2)<=Z(3) Проблема в том, что каждые элемент должен входит только один раз. Подскажите как реализовать?
C++ Сортировка. Массив m. Расположить неотрицательные элементы в порядке убывания. Использовать алгоритм вставки. Проблем в том что, отрицательные нужно оставить на месте(. http://www.cyberforum.ru/cpp-beginners/thread94518.html
Класс вектор C++
необходимо написать класс вектор (в геометрическом смысле в трёхмерном пространстве) реализовать : поворот вектора вокруг осей координат, поворот вектора вокруг произвольной оси, угол между векторами подскажите как это реализовать ?:)
C++ Подправить код с удалением цифр..
Задание таково: "Написать программу на языке C++ чересстрочного слияния двух текстовых файлов с удалением в каждой строке слов в которых встречаюстя цифры". Моя прога работает, но с небольшой погрешностью она удаляет не все слово, а только предшествующую цифре часть слова и саму цифру.. qwe8rty rty \\вот так работает мой код
C++ ввод из файла http://www.cyberforum.ru/cpp-beginners/thread94466.html
подскажите как делать ввод из файла
C++ Составить программу подсчета количества цифр в данной строке. #include <stdafx.h> #include <iostream.h> #include <string.h> #include <ctype.h> void main () {char s, *p; int a, num=0; cout<<"Введите строку:"; gets (s); a=strlen(s); подробнее

Показать сообщение отдельно
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
11.02.2010, 16:15     перевод из десятичной в двоичную
Помогите пожалуйста.
Перевод из десятичной в систему счисления по основанию k
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//---------------------------------------------------------------------------
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
#include <winuser.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
char* rus(const char* text)
{
 char *bufRus=new char[strlen(text)];
 CharToOem(text, bufRus);
 return bufRus;
}
int main(int argc, char* argv[])
{int n, k, i, t, r, p, y;
char m[200];
char b[20];
int m1[200];
cout<<rus("Введите число в десятичной системе счисления: ");
cin>>n;
p=n;
cout<<rus("Введите основание системы счисления, в которую программа будет переводить: ");
cin>>k;
if (k>=2 && k<=36) {
for (i=0; i < 199; i++) {y++;
if (n<k) {m1[i]=n; break;}
else{m1[i]=n%k; }n=n/k;}
for (t=0; t<i+1; t++) {
switch (m1[t])
    { case 0: m[t] = '0'; cout<<m[i-t]; break;
      case 1: m[t] = '1';cout<<m[i-t]; break;
      case 2: m[t] = '2';cout<<m[i-t]; break;
      case 3: m[t] = '3';cout<<m[i-t]; break;
      case 4: m[t] = '4';cout<<m[i-t]; break;
      case 5: m[t] = '5';cout<<m[i-t]; break;
      case 6: m[t] = '6';cout<<m[i-t]; break;
      case 7: m[t] = '7';cout<<m[i-t]; break;
      case 8: m[t] = '8';cout<<m[i-t]; break;
      case 9: m[t] = '9';cout<<m[i-t]; break;
      case 10: m[t] = 'A';cout<<m[i-t]; break;
      case 11: m[t] = 'B'; cout<<m[i-t];break;
      case 12: m[t] = 'C';cout<<m[i-t]; break;
      case 13: m[t] = 'D'; cout<<m[i-t];break;
      case 14: m[t] = 'E';cout<<m[i-t]; break;
      case 15: m[t] = 'F';cout<<m[i-t]; break;
      case 16: m[t] = 'G';cout<<m[i-t]; break;
      case 17: m[t] = 'H';cout<<m[i-t]; break;
      case 18: m[t] = 'I';cout<<m[i-t]; break;
      case 19: m[t] = 'J';cout<<m[i-t]; break;
      case 20: m[t] = 'K';cout<<m[i-t]; break;
      case 21: m[t] = 'L';cout<<m[i-t]; break;
      case 22: m[t] = 'M';cout<<m[i-t]; break;
      case 23: m[t] = 'N';cout<<m[i-t]; break;
      case 24: m[t] = 'O';cout<<m[i-t]; break;
      case 25: m[t] = 'P';cout<<m[i-t]; break;
      case 26: m[t] = 'Q';cout<<m[i-t]; break;
      case 27: m[t] = 'R';cout<<m[i-t]; break;
      case 28: m[t] = 'S'; cout<<m[i-t];break;
      case 29: m[t] = 'T'; cout<<m[i-t];break;
      case 30: m[t] = 'U';cout<<m[i-t]; break;
      case 31: m[t] = 'V'; cout<<m[i-t];break;
      case 32: m[t] = 'W'; cout<<m[i-t];break;
      case 33: m[t] = 'X'; cout<<m[i-t];break;
      case 34: m[t] = 'Y'; cout<<m[i-t];break;
      case 35: m[t] = 'Z';cout<<m[i-t]; break;}
}
cout<<endl;   }
else {cout<<endl;
cout<<rus("Критическая ошибка.");}
delete [] m;
delete [] m1;
system("pause");
    return 0;}
//---------------------------------------------------------------------------
Прога делает не серьезные ошибки. Раньше она считала правильно, но не показывала буквы точнее вместо В ставила 11. Теперь теряет или неправильно отображает. Например, при переводи из десятичной числа 120 в двоичную теряет 3 первых единицы, за место них пробелы.

Добавлено через 16 минут
Хм. Забавно. Но проблема решилась сама. Я написал строчку одну и все пошло как надо. Удалил ее и все равно правильно идет. Наверное, я что-то лишнее удалил.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//---------------------------------------------------------------------------
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
#include <winuser.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
char* rus(const char* text)
{
 char *bufRus=new char[strlen(text)];
 CharToOem(text, bufRus);
 return bufRus;
}
int main(int argc, char* argv[])
{int n, k, i, t, r, p, y;
char m[200];
char b[200];
int m1[200];
cout<<rus("Введите число в десятичной системе счисления: ");
cin>>n;
p=n;
cout<<rus("Введите основание системы счисления, в которую программа будет переводить: ");
cin>>k;
if (k>=2 && k<=36) {
for (i=0; i < 199; i++) {y++;
if (n<k) {m1[i]=n; cout<<m1[i]<<endl;; break;}
else{m1[i]=n%k; cout<<m1[i]<<endl;}n=n/k;}
 
 
 
for (t=0; t<y+1; t++) {
switch (m1[i-t])
    { case 0: m[t] = '0'; cout<<m[t]; break;
      case 1: m[t] = '1';cout<<m[t]; break;
      case 2: m[t] = '2';cout<<m[t]; break;
      case 3: m[t] = '3';cout<<m[t]; break;
      case 4: m[t] = '4';cout<<m[t]; break;
      case 5: m[t] = '5';cout<<m[t]; break;
      case 6: m[t] = '6';cout<<m[t]; break;
      case 7: m[t] = '7';cout<<m[t]; break;
      case 8: m[t] = '8';cout<<m[t]; break;
      case 9: m[t] = '9';cout<<m[t]; break;
      case 10: m[t] = 'A';cout<<m[t]; break;
      case 11: m[t] = 'B'; cout<<m[t];break;
      case 12: m[t] = 'C';cout<<m[t]; break;
      case 13: m[t] = 'D'; cout<<m[t];break;
      case 14: m[t] = 'E';cout<<m[t]; break;
      case 15: m[t] = 'F';cout<<m[t]; break;
      case 16: m[t] = 'G';cout<<m[t]; break;
      case 17: m[t] = 'H';cout<<m[t]; break;
      case 18: m[t] = 'I';cout<<m[t]; break;
      case 19: m[t] = 'J';cout<<m[t]; break;
      case 20: m[t] = 'K';cout<<m[t]; break;
      case 21: m[t] = 'L';cout<<m[t]; break;
      case 22: m[t] = 'M';cout<<m[t]; break;
      case 23: m[t] = 'N';cout<<m[t]; break;
      case 24: m[t] = 'O';cout<<m[t]; break;
      case 25: m[t] = 'P';cout<<m[t]; break;
      case 26: m[t] = 'Q';cout<<m[t]; break;
      case 27: m[t] = 'R';cout<<m[t]; break;
      case 28: m[t] = 'S'; cout<<m[t];break;
      case 29: m[t] = 'T'; cout<<m[t];break;
      case 30: m[t] = 'U';cout<<m[t]; break;
      case 31: m[t] = 'V'; cout<<m[t];break;
      case 32: m[t] = 'W'; cout<<m[t];break;
      case 33: m[t] = 'X'; cout<<m[t];break;
      case 34: m[t] = 'Y'; cout<<m[t];break;
      case 35: m[t] = 'Z';cout<<m[t]; break;
      default: 'h';}
 
 
 
      }}
else {cout<<rus("Критическая ошибка.");}
delete [] m;
delete [] m1;
system("pause");
    return 0;}
//---------------------------------------------------------------------------
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru