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

написать функцию из 10 с.с в 16 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверить, есть ли цифры, не встречающиеся ни разу http://www.cyberforum.ru/cpp-beginners/thread18474.html
Помогите, пожалуйста с программой на Си.:help: Проверить, есть ли цифры, не встречающиеся ни разу
C++ Найти сумму бесконечного ряда с заданной точностью Народ помогите пожалуйста запрограммировать.:'( Вот что у меня получается... // #include "stdafx.h" #include <iostream> #include <iomanip> #include <cmath> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread18470.html
Почему компилятор не понимает тип bool? C++
#include <stdio.h> #include <iostream .h> #include <fstream.h> #include <iomanip.h> #include <math.h> #include <string.h> #define MAXN 10 #define MAXM 10
реализовать класс "двоичный сигнал" C++
Состояние класса - Двоичный сигнал определяется последовательностью состояний сигнала (значение уровня и длительность типа char в условных еди-ницах). Для описания состояния сигнала целесообразно использовать структуру. Память под массив структур выделяется статически, во время компиляции, и задается массивом фиксированного размера. Задаётся максимальная длительность сигнала. не...
C++ Подсчет среднего геометрического всех элементов массива http://www.cyberforum.ru/cpp-beginners/thread18451.html
здравствуйте вот программа которая должна считать среднее геометрическое всех элементовно не могу реализовать подсчет корня n-степени...дело в том что ф-я pow не считает тип (int,int). как сделать приведение типов либо посоветуйте другой способ для нахождения корня корня n-степени. вот текст самой программы #include <stdio.h> #define n 100 #include<math.h> int proizved(int mas, int m)//...
C++ Найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю Народ нужна помощь помогите с програмой не могу завтро зачет не могу ее написать) Вот задача:В одномерном массиве, состоящем из n целых элементов, вычис-лить: 1) минимальный по модулю элемент массива; 2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю. Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных... подробнее

Показать сообщение отдельно
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.12.2008, 00:38     написать функцию из 10 с.с в 16
Код
 
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

#define MAXNUMBER  100    /* максимальная длина числа */

/* переводит число из 10-ной в 16-ричную систему */
main()
{
    int dectohex(char *);
    char number[MAXNUMBER];
    
    sprintf(number, "125");
    if (dectohex(number) == 0)
        printf("%s\n", number);
    return 0;
}

//#include <ctype.h>
//#include <stdlib.h>

/* dectohex:  переводит число из 10-ной системы счисления в 16-ричную;
              число >0 и <2^31 */
int dectohex(char *s)
{
    char *p = s;
    long n, i;
    
    while (isdigit(*p))
        p++;
    if (*p != '\0')
        return 1;
    if ((n = atoi(s)) == 0) {    
        *s = '0';
        *(s+1) = '\0';
        return 0;
    }    
    for (i = n, p = s; i; p++, i >>= 4)
        ;
    *p = '\0';
    for (p-- ; n; n >>= 4, p--) {
        i = (n & 0xF);
        *p = (i < 10 ? '0' + i : 'A' + (i-10));
    }
    return 0;
}
через сдвиги, там ограничения на размер и зависимость от таблицы кодов символов (может быть не переносима между разными системами), сообщает об ошибке (если передаётся не десятичное положительное число)
т.к. надо возвращать 16ричное число, строка нужна обязательно (лучше бы вообще не использовать строки когда с числами работаешь)
алгоритм через деление может увеличить максимально допустимый размер числа, я пробовал через double нифига чо-то не получилось для сдвигов (пишет нелья такие операции применять к double оно и ясно там же вещественная часть вычисляется)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru