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

Перевод чисел в определённую систему - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с чтением из файла http://www.cyberforum.ru/cpp-beginners/thread49511.html
Подскажите пожалуйста в чем ошибка? Чтения не происходит. Нули в массиве как были, так и остаются. первый раз работаю в Visual, может быть тут какие-то тонкости в этом плане? #include "stdafx.h"...
C++ Препроцессор Профессионалы, ответте вот на какой вопрос: Мне необходимо получить файл, который образуется после обработки препроцессором, т.е. после замены всех #define, #include и т.д. и т.п. Использую MS VS... http://www.cyberforum.ru/cpp-beginners/thread49463.html
C++ Программа телефонный номер
Тут столкнулся с проблемой. Программа не выводит телефонный номер, при вводе русских символов, реагирует только на английский ввод. Не знаю, вроде всё должно работать.Вот исходник: #include...
Как скрыть программу от ctrl alt del? C++
Как скрыть программу от ctrl alt del? http://www.cyberguru.ru/cpp-sources/dll-applications/kak-skryt-programmu-ot-ctrl-alt-del.html не работает в win7
C++ Как удалить строку/столбец из двумерного вектора? http://www.cyberforum.ru/cpp-beginners/thread49415.html
Прошу помощи. До самого не доходит. Имеем вектор v . std::vector<std::vector<int> > v( N, std::vector<int>M); Как с помощью функции .erase() библиотеки vector удалить строчку x, чтоб массив стал...
C++ From UTF-8 to UNICODE здравствуйте!! у меня вот какой вопрос! Как сделать преобразование UTF-8 и Unicode? во общем моя программа считывает данные с базы( база на армянском) в буфер и тут начинаются все проблемы!! я не... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9694 / 5644 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
07.09.2009, 13:06
odip, Это хорошо, когда itoa есть. Стандартом вроде бы не описана.

dimjan4, Вот на С вариант, но опять же основание числа вводить прийдётся через пробел в буквенном виде (для наглядности):
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
 
/* перевод чисел в разные системы счисления */
 
/* int2bin - представление числа в виде строки */
char *long2bin(unsigned long int d, char *s){
    int first, last;
    char c;
    char *p = s;
    while ( d > 0 ){
        *p++ = d % 2 + '0';
        d /=  2;
    }
    *p = 0;
    for ( first = 0, last = (strlen(s) - 1); first < last; first++, last--){
        c = s[first];
        s[first] = s[last];
        s[last] = c;
    }
    return(s);
}
 
 
int main(){
    char buf[BUFSIZ];
    char strval[sizeof(long)*CHAR_BIT + 1]; /* максимальная длинна long в двоичном виде с завершающим нулём */
    char bas;
    long int d;
    
    while ( 1 ){
        printf("Enter some number followed by space separated basis (b o d x), or q to quit:\n");
        fgets(buf, BUFSIZ, stdin);
        if ( *buf == 'q' )
            break;
        if ( sscanf(buf, "%s %c", &strval, &bas) != 2 )
            continue;
        switch ( bas ){
            case 'b' :
                d = strtol(strval, NULL, 2);
                break;
            case 'o' :
                d = strtol(strval, NULL, 8);
                break;
            case 'd' :
                d = strtol(strval, NULL, 10);
                break;
            case 'x' :
                d = strtol(strval, NULL, 16);
                break;
            default :
                printf("Invalid basis value!\n");
                exit(1);
                break;
        }
        printf("Bin: %s\nOct: %#lo\nDec: %ld\nHex: %#lx\n", long2bin(d, buf), d, d, d);
    }
    
    return(0);
}
Пример работы:
Перевод чисел в определённую систему
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru