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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2011, 19:16   #1
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
Вопрос Системы счисления. Буквы <-> цифры.

Подскажите, есть ли в С++ функция, кот. переводит числа от A до Z в 10..38 соответственно?
Zhenya-Pvl вне форума Ответить с цитированием
Старый 19.02.2011, 19:43   #2
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

не понятно что за 10 и 38, вам нужны ascii коды тогда надо конвертировать символ в число (int)'A' или int('A') если надо наоборот из ascii кода получить символ то (char)10 или char(10), если надо получить алфавитный номер то надо вычесть код символа 'A', ну или 'a' и прибавить один
ololo-schoolboy вне форума Ответить с цитированием
Старый 19.02.2011, 20:03   #3
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
По умолчанию

Надо из одной системы счисления перевести число в другую. И кейсом перебирать все буквы от A до Я влом. Я точно знаю, что есть спец. функция. А про int('A') и char[10] я знаю, это не то. В ASCII нет чисел 10, 11, 12 ит.д.
Zhenya-Pvl вне форума Ответить с цитированием
Старый 19.02.2011, 21:08   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Zhenya-Pvl Посмотреть сообщение
Подскажите, есть ли в С++ функция, кот. переводит числа от A до Z в 10..38 соответственно?
1. Просто присвоить char int'у и вычесть потом 55 не пробовали?..
2. Почему из 'Z' должно получиться 38 ??!!

Цитата:
Сообщение от Zhenya-Pvl
Надо из одной системы счисления перевести число в другую. И кейсом перебирать все буквы от A до Я влом.
Система счисления с русскими символами в качестве цифр?... Оригинально!..

Цитата:
Сообщение от Zhenya-Pvl
Я точно знаю, что есть спец. функция. А про int('A') и char[10] я знаю, это не то.
char[10] - точно не то!..

Цитата:
Сообщение от Zhenya-Pvl
В ASCII нет чисел 10, 11, 12 ит.д.
Простите, а LF, VT, FF?.. Их что, из таблицы уже убрали?..
Vago вне форума Ответить с цитированием
Старый 20.02.2011, 17:55   #5
Д_М
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 92
По умолчанию

Вот это не поможет?

unsigned long
strtoul(const char * restrict nptr, char ** restrict endptr, int base);

The conversion is done according to
the given base, which must be between 2 and 36 inclusive
Д_М вне форума Ответить с цитированием
Старый 20.02.2011, 19:13   #6
Zhenya-Pvl
Пользователь
 
Регистрация: 26.03.2010
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
1. Просто присвоить char int'у и вычесть потом 55 не пробовали?..
2. Почему из 'Z' должно получиться 38 ??!!


Система счисления с русскими символами в качестве цифр?... Оригинально!..


char[10] - точно не то!..


Простите, а LF, VT, FF?.. Их что, из таблицы уже убрали?..
1) В таблице ASCII нету чесел 10..38, там только цифры.
2) Потомучто A в 16-ной системе счисления = 10 в 10-ной.
3) Я = Z + punto svicher
4) А я про что
5) Это не то
Zhenya-Pvl вне форума Ответить с цитированием
Старый 20.02.2011, 19:49   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Вы имеете в виду:

00000000 = 00 = 0
00000001 = 01 = 1
.................
00001010 = A = 10
................
00100110 = Z = 38

?

Если так, то такой функции нет.
Дело в том, что в 16-и ричной системе, это не буквы а цифры (просто обозначенные буквами).
Например A + C = 16.
Или в двоичной:
1010 + 1100 = 10110. Как мы видим, произошёл перенос в старший разряд и число не стало равным "M".
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 20.02.2011 в 19:51.
Smitt&Wesson вне форума Ответить с цитированием
Старый 20.02.2011, 20:42   #8
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Zhenya-Pvl,.. Пожалуйста... RTFM!!..
Vago вне форума Ответить с цитированием
Старый 21.02.2011, 00:34   #9
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

напиши

Код:
10+x-'A'
где х - твоя буква
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 21.02.2011, 01:47   #10
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
Сообщение от ololo-schoolboy Посмотреть сообщение
не понятно что за 10 и 38, вам нужны ascii коды тогда надо конвертировать символ в число (int)'A' или int('A') если надо наоборот из ascii кода получить символ то (char)10 или char(10), если надо получить алфавитный номер то надо вычесть код символа 'A', ну или 'a' и прибавить один
раз уж C++, то static_cast<int>('A') и т.п.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цифры буквы в делфи MrMorozko Помощь студентам 2 01.11.2010 23:47
Системы Счисления amki6 Помощь студентам 0 11.03.2010 18:32
Как изменить цифры на буквы Артем125 Microsoft Office Excel 1 18.02.2010 13:44
Буквы или Цифры moff Общие вопросы C/C++ 2 25.10.2009 18:45
Упорядочить буквы и цифры (Pascal) BzDoN Помощь студентам 8 28.02.2009 19:13