Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 16ричные числа 
:(
    Опции темы
WolfON
Дата 25.1.2005, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



есть число в 10тичной системе(long), надо перевести его в 16ричную,только без массива чаров как-нить и без тормознутых strtoul и sprintf
PM MAIL ICQ   Вверх
Borisff2003
Дата 25.1.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



В какой системе записан long вопрос очень спорный smile

А для перевода в строку подойдет ltoa
там третий параметр как раз показатель системы счисления.
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
WolfON
Дата 25.1.2005, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



Borisff2003
а потом записать его в массив unsigned char'ов, какие идеи?
PM MAIL ICQ   Вверх
Unknown_Error
Дата 25.1.2005, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



WolfON, тебе уже сказали, что надо юзать ltoa
Открой хелп и посмотри параметры передаемые в эту функцию! smile
PM MAIL ICQ   Вверх
maxim1000
Дата 25.1.2005, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата
есть число в 10тичной системе(long), надо перевести его в 16ричную,только без массива чаров как-нить и без тормознутых strtoul и sprintf

не очень понятен вопрос, а именно: что хочется получить в результате
если число в какой-нибудь системе счисления, то это по определению - последовательность цифр, а значит, массив (если такое отвращение к unsigned char, можно взять double, в конце концов smile, только с ним функция ltoa работать не будет, придется вручную)
P.S.
Цитата
В какой системе записан long вопрос очень спорный

а что тут спорить? в 2^32-ричной... (ну, может 2^31-ричной, если вспомнить про знак), т.к. коэффициент один, обрабатывается целиком, составляющие отдельно не хранятся и не обрабатываются (хотя их можно выделить)


--------------------
qqq
PM WWW   Вверх
WolfON
Дата 25.1.2005, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



maxim1000
Цитата
(если такое отвращение к unsigned char, можно взять double, в конце концов smile, только с ним функция ltoa работать не будет, придется вручную)

да, как это сделать вручную?
PM MAIL ICQ   Вверх
maxim1000
Дата 25.1.2005, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата
да, как это сделать вручную?

так... я совсем запутался... тебе надо просто как-то перевести (т.е. подойдет стандартная функция) или сам алгоритм перевода?
должен заметить, что даже делая все вручную никуда от массивов в том или ином виде не убежать (в крайнем случае, выводить задом наперед, но это - уже извращение)...


--------------------
qqq
PM WWW   Вверх
Unknown_Error
Дата 25.1.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Цитата(maxim1000 @ 25.1.2005, 15:48)
можно взять double, в конце концов

хм... и как же в нем представить числов 16 виде?
В этой системе исчисления присутствуют A B C D E F (10 11 12 13 14 15)
Соответственно я не думаю, что здесь можно будет обойтись без массива чаров!
PM MAIL ICQ   Вверх
WolfON
Дата 25.1.2005, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



byte - это unsigned char
Код

printf("Enter most significant 32 bits of key in hex  : ");
                scanf("%lX",&val);
                keyreg[7]=(byte)(val>>24);
                keyreg[6]=(byte)(val>>16);
                keyreg[5]=(byte)(val>>8);
                 keyreg[4]=(byte)(val>>0);
                 printf("Enter least significant 32 bits of key in hex : ");
                scanf("%lX",&val);
                keyreg[3]=(byte)(val>>24);
                keyreg[2]=(byte)(val>>16);
                keyreg[1]=(byte)(val>>8);
                 keyreg[0]=(byte)(val>>0);


мне надо в keyreg ввести число, как?
PM MAIL ICQ   Вверх
Tripl-X
Дата 26.1.2005, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 29.12.2004

Репутация: 1
Всего: 1



Вот так:
Код

printf("%x", y);//y - любое число, символ или переменная

Это выведет тебе на экран 16ричное представление того, чего тебе надо...
PM MAIL ICQ   Вверх
WolfON
Дата 26.1.2005, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



Tripl-X
мне НУЖНО в массив unsigned char'ов ввести 16ричное число из обычного, скажем из long, как он задается при вводе вручную вы видели, идеи
PM MAIL ICQ   Вверх
Borisff2003
Дата 26.1.2005, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



Цитата

мне НУЖНО в массив unsigned char'ов ввести 16ричное число из обычного, скажем из long, как он задается при вводе вручную вы видели, идеи


Так тебе надо 16-ое в виде читаемом для человека или просто байты из long повытаскивать smile

long он и есть long и внутреннее представление не буте отличатся от того как ты его ввел
Далее все одинаково

Код

long i=16;
long j =0x10;


j и i одинаковы!!! Твори с ними све что хочешь.


--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
LuckLess
Дата 26.1.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



не очень понятно как тебе
Цитата(Borisff2003 @ 26.1.2005, 11:34)
НУЖНО в массив unsigned char'


Цитата(WolfON @ 25.1.2005, 12:58)
только без массива чаров


но может поможет этот код...
с массивом чаров правда...
Код

void main(void){
int i=0;
long chislo=68552;
unsigned char hz[30]={0},*result;


while(chislo!=0){
hz[i++]=chislo%16+48;
if (hz[i-1]>58) hz[i-1]+=39;
chislo/=16;
}

result=strrev(hz);
printf("%s",result);

_getch();
}


PM MAIL   Вверх
WolfON
Дата 1.2.2005, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



LuckLess
пасиб тебе smile
Добавлено @ 18:55
LuckLess
пасиб тебе smile
но я тут сам сделал кое-как без массивов smile
PM MAIL ICQ   Вверх
Adil'
Дата 2.2.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



Цитата(WolfON @ 1.2.2005, 18:55)
но я тут сам сделал кое-как без массивов
Очень бы хотелось взглянуть на реализацию - глядишь, может станет понятно, что все-таки было нужно. smile



--------------------
Удачи
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0885 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.