Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 18:54   #1
Bonne
Пользователь
 
Регистрация: 10.02.2010
Сообщений: 13
По умолчанию си++ перевод числа из шестнадцатиричной системы в десятичную.

в чем ошибка?

#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;

int main(int argc, char *argv[])
{char sh[30];
int dec,num,v ;

cout<<" enter nunber\n " ;
cin.getline(sh,29) ;
toupper(sh);
dec=0;
v=1;

for(num=strlen(dv)-1;num>=0; num--){
if(sh[num]>='0' && sh[num]<='9' )
dec=v*(sh[num]-48)+dec;
else
if(sh[num]>='A' && sh[num]<='F')
dec=v*(sh[num]-55)+dec ;
v*=16 ; }
cout<<dec<<endl ;
Bonne вне форума Ответить с цитированием
Старый 18.04.2010, 19:19   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Особо не всматривался, но из того, что бросилось в глаза - toupper приводит к верхнему регистру символ, а не строку. Чтобы привести строку необходимо цикл писать
Код:
int length = strlen(sh);
for(int i = 0; i < length; i++)
    sh[i] = toupper(sh[i]);
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
си++ перевод числа из двоичной системы в десятичную. Bonne Помощь студентам 1 13.04.2010 22:07
Перевод числа из двоичной системы в десятичную С++ kontroller Помощь студентам 2 15.02.2010 20:39
Перевод из шестнадцатиричной в десятичную систему Dayne Помощь студентам 5 02.10.2009 01:04
Перевод числа в различные системы счисления ...Оленька... Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.12.2008 16:08