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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Nick888
Сообщений: n/a
#1

перевод из 10сс в 16сс - C++

07.03.2010, 11:03. Просмотров 1133. Ответов 3
Метки нет (Все метки)

Всем привет!) Подкиньте пожалуйста прогу перевода из 10сс в 16сс, где
функция находит в строке десятичные константы и заменяет их на шестнадцатеричные с тем же значением, например "aaaaa258xxx" на "aaaaa0x102xxx".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2010, 11:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перевод из 10сс в 16сс (C++):

Перевод из 10СС в 2,8,16СС. - C++
Не знаю как написать программу на языке си по переводу любого вводимого целого числа в 10 сс(системе счисления) в любую другую 2,8 или...

Перевод из 10 сс в 16сс - C++
Всем добрый вечер! Не могли бы вы мне помочь составь правильный алгоритм или написать основной код по переводу из 10 сс в 16 сс, а то я...

Перевод чисел из 16сс в 8сс - C++
Создать програму перевода из 16ой системы исчисления у 8ую

Перевод из 10СС - C++
извините за граматику!! как перевести десятичное число у q-систему счисления. например, троичную, пятиричную.q вводить с клавиатуры.и...

Перевод из 2сс в 10сс - C++
Помогите пожалуйста написать программу! Перевод дробной части 2го числа в дробное десятичное! Входное 2ое число константа задается как...

Программа для перевода чисел из 10сс в 2сс - C++
Всем здорова! Вот тут такая проблема, в код написан правильно, работает, но вот, под строку вывода числа конечного зарезервировано 30...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
07.03.2010, 15:39 #2
есть какие то наработки?
0
Nick888
Сообщений: n/a
09.03.2010, 17:07 #3
Есть парочка, завтра приду домой выложу. Работает, но только глючно, переводит все символы, в том числе и буквы, что как раз и не надо, цифры переводит, но не правильно.

Добавлено через 13 часов 19 минут
Собственно вот:


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
#include <iostream>
using namespace std;
#include <stdio.h>
 
void find(int s[],int B[]) 
{int i,n,m=0,j,a;
for (i=0; s[i]!=0; i++) //цикл просматривает массив
{ if (s[i]>='0' && s[i]<='9') 
{ 
n = s[i];
B[m++]=' ';
for (int nn=n; nn!=0; m++, nn/=16); //Подсчет количества цифр числа
for (j=m-1; n!=0; j--, n/=16) // Получение цифр числа
{
a=n%16; //получение цифр в обратном порядке
if(a<10) B[j]=a+'0'; //Перевод в 16СС до 10
else B[j]=a-10+'A'; //Перевод в 16СС от 10 
}
n=0; B[m++]=' ';
}
else B[m++]=s[i];  
}
B[m++]=0;} 
 
void main(){
    int s[];
    gets (s);
    int B[100];
    find(s, B);
    printf("%s\n", B);
} //вывод обновлённого символьного массива
Добавлено через 10 секунд

Добавлено через 10 часов 14 минут
Гляньте пожалуйста, может найдёте мои ошибки.

Добавлено через 20 часов 54 минуты
Вот исправленный вариант, проблема только в одном, он считает каждый символ, т.е. 258 и разбивает на 2, 5, 8 и считает, а надо что бы считал, как 258.
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
#include <iostream>
using namespace std;
#include <stdio.h>
 
void find(char s[],char B[]) 
{int i,n,m=0,j,a;
for (i=0; s[i]!=0; i++) //цикл просматривает массив
{ if (s[i]>='0' && s[i]<='9') 
{ 
n = s[i];
B[m++]=' ';
B[m++]='0';
B[m++]='x';
for (int nn=n; nn!=0; m++, nn/=16); //Подсчет количества цифр числа
for (j=m-1; n!=0; j--, n/=16) // Получение цифр числа
{
a=n%16; //получение цифр в обратном порядке
if(a<10) B[j]=a+'0'; //Перевод в 16СС до 10
else B[j]=a-10+'A'; //Перевод в 16СС от 10 
}
n=0; B[m++]=' ';
}
else B[m++]=s[i];  
}
B[m++]=0;} 
 
void main(){
    char s[100];
    gets (s);
    char B[100];
    find(s, B);
    printf("%s\n", B);
} //вывод обновлённого символьного массива
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
09.03.2010, 17:30 #4
Стоп. Давай начнём с подсчёта количества цифр числа что-то оно мне не нравится.

C++
1
2
[FONT=monospace]for (int nn=n; nn!=0; m++, nn/=16);
[/FONT]
Объясни мне какая переменная будет вмещать это значение? Переменная mm не может, по-моему, это просто счётсик. Тем более, на этот момент он уже равен 3

Далее, в нашем примере переменная n равна 50. Ты пишешь nn= n, следовательно, приравниваешь nn к 50. Зачем? Для чего? В общем, подробно по этому участку кода.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2010, 17:30
Привет! Вот еще темы с ответами:

Перевод из 16СС в 10СС - Delphi
Доброго времени суток! Использую такую функцию перевода: Function TForm1.Hex2Dec(shex: String): Real; CONST HEX : ARRAY OF...

Перевод чисел с 2 СС в в 10СС, 8СС, 16СС - Delphi
Здраствуйте всем! Помогите пожалуйста! Мне нужна ваша помощь, нужно Листинг программы для перевода числа из двоичной системы в 10СС,...

Перевод числа из 10сс в 2сс,8сс и 16сс с заданием числа вещественного типа - Pascal
Здраствуйте. Помогите с решением задачи. Задание: перевести число из десятичной системы счисления в двоичную, восьмиричную и...

Программа перевода из 10сс в 16сс - Pascal
Уважаемые участники форума, очень нуждаюсь в программе Pascal по переводу из 10 СС в 16 СС. Если можно скиньте именно часть по переводу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.03.2010, 17:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru