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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как Перевести из int a; в char b[1]; ? 
V
    Опции темы
Dimitriy
Дата 12.2.2010, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Искал по форуму, ничего не нашол((((((

как можно в перевести число из int a; (у int a диаппазон от 0 до 255) в char?

есть
:
int a = 35;
char c[1];

нужно получить результат: c[0] = 0х35;

кто знает, подскажите плз!!



PM MAIL WWW ICQ   Вверх
artsb
Дата 12.2.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



1.
Код

int a = 35;
//char c[1]; // зачем это?
char c;

c = (char)a;

2.
Код

union {
 int a;
 char c;
};

a = 35;

//c=#


Это сообщение отредактировал(а) artsb - 12.2.2010, 22:34


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mes
Дата 12.2.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Dimitriy @  12.2.2010,  21:02 Найти цитируемый пост)
int a = 35;
нужно получить результат: c[0] = 0х35;

Dimitriy,  35 и 0x35 не одно и то же..  А о переводе из десятиричной в шестнадцатиричную у Вас в задании не сказано..
так что желательно уточнить что Вы имели ввиду.

Добавлено через 52 секунды
P.S. ответы на такие вопросы надо искать не по форуму, а в книжке.. 



--------------------
PM MAIL WWW   Вверх
Dimitriy
Дата 12.2.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

int a = 35;
char c;

c = (char)a;


так не работает, я уже пробовал, итог такого кода c = '#',  a должен быть c = '5'....

Цитата

Добавлено @ 22:38
Цитата(Dimitriy @  12.2.2010,  21:02 Найти цитируемый пост)
int a = 35;
нужно получить результат: c[0] = 0х35;

Dimitriy,  35 и 0x35 не одно и то же..  А о переводе из десятиричной в шестнадцатиричную у Вас в задании не сказано..
так что желательно уточнить что Вы имели ввиду.

Добавлено @ 22:30
P.S. ответы на такие вопросы надо искать не по форуму, а в книжке..

я в курсе что не одно и тоже...

извиняюсь что не уточнил,

Нужно перевести из десятиричной в шестнадцатиричную систему, желательно с помошью стандартных средств в С++...

Это сообщение отредактировал(а) Dimitriy - 12.2.2010, 22:42
PM MAIL WWW ICQ   Вверх
artsb
Дата 12.2.2010, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Цитата(Dimitriy @  12.2.2010,  22:35 Найти цитируемый пост)
я уже пробовал, итог такого кода c = '#',  a должен быть c = '5'....

Код

int a = 53; // не 35!
char c;
c = (char)a; // с = '5'


Добавлено @ 22:44
Цитата(Dimitriy @  12.2.2010,  22:35 Найти цитируемый пост)
Нужно перевести из десятиричной в шестнадцатиричную систему, желательно с помошью стандартных средств в С++

Это меняет дело...

Это сообщение отредактировал(а) artsb - 12.2.2010, 22:45


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mes
Дата 12.2.2010, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Dimitriy @  12.2.2010,  21:35 Найти цитируемый пост)
извиняюсь что не уточнил,

Нужно перевести из десятиричной в шестнадцатиричную систему, желательно с помошью стандартных средств в С++...

интересно, а если int к примеру равен 147, чему по вашему должен быть равен char ?!


Цитата(Dimitriy @  12.2.2010,  21:35 Найти цитируемый пост)
извиняюсь что не уточнил,

лучше не за отсутствие уточнения, а за абсолютно не сформулированную задачу.
 smile 


--------------------
PM MAIL WWW   Вверх
Dimitriy
Дата 12.2.2010, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

int a = 53; // не 35!
char c;
c = (char)a; // с = '5'


спасибо artsb за обьяснение. кстати число под номером 35 (0x35) в ASCII находится символ '5'(если я не ошибаюсь), я это имел ввиду, не думал что если поменять местами цифры в числе 35(т.е. 53) получится символ '5' после данного преобразованияsmilesmile

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

скажу немного проще, есть число(адрес устройства) который лежит в диаппазоне от 0 до 255, чтоб не тратить 3 байта на адрес, необходимо преобразовать его в один байт char,
вот как это сделать, не додумался...

Добавлено через 4 минуты и 47 секунд
Цитата

интересно, а если int к примеру равен 147, чему по вашему должен быть равен char ?!


unsigned char = 0x93

Это сообщение отредактировал(а) Dimitriy - 12.2.2010, 23:00
PM MAIL WWW ICQ   Вверх
artsb
Дата 12.2.2010, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Цитата(Dimitriy @  12.2.2010,  23:00 Найти цитируемый пост)
под номером 35 (0x35) в ASCII находится символ '5'

неа

Цитата(Dimitriy @  12.2.2010,  23:00 Найти цитируемый пост)
вот как это сделать, не додумался...

Код

int a = 53;
char c;
c = (char)a;
a = (int)c;

В a будет 53.

Это сообщение отредактировал(а) artsb - 12.2.2010, 23:09


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
mes
Дата 12.2.2010, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Dimitriy @  12.2.2010,  22:00 Найти цитируемый пост)
unsigned char = 0x93

интересно по какому закону у Вас 35 должно превратися в 0x35, a 147 должно остаться 0х93 ?  smile 

Цитата(Dimitriy @  12.2.2010,  22:00 Найти цитируемый пост)
скажу немного проще, есть число(адрес устройства) который лежит в диаппазоне от 0 до 255, чтоб не тратить 3 байта на адрес, необходимо преобразовать его в один байт char,
вот как это сделать, не додумался...

Для этой задачи Вам решение дал artsb еще в самом начале.. И никаких махинадций со сменой систем счисления там не нужно..


Это сообщение отредактировал(а) mes - 12.2.2010, 23:15


--------------------
PM MAIL WWW   Вверх
Dimitriy
Дата 12.2.2010, 23:16 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я идиот))) с самого начала почему то думал что 35 == 0х35 болван я!

спаибо!!!!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.1333 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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