Страница 1 из 1
Как в С++ преобразовать тип int в тип char
Добавлено: 01 фев 2010, 10:34
dmitry1208197320
Подскажите, пожалуйста, как это можно сделать?
Re: Как в С++ преобразовать тип int в тип char
Добавлено: 01 фев 2010, 10:57
IceFlame
Ну, например,
Или надо преобразовывать целое число в строку?
Re: Как в С++ преобразовать тип int в тип char
Добавлено: 01 фев 2010, 11:32
Romeo
На Win32 тип int имеет размер 4 байта, а char - 1 байт. Таким образом "честное" преобразование int в char невозможно. Возможно лишь преобразование с усечением (truncation). Самое распространенное усечение - это отбрасование старших байт. Как это сделать продемонстировал IceFlame.
Re: Как в С++ преобразовать тип int в тип char
Добавлено: 01 фев 2010, 12:13
dmitry1208197320
Спасибо за ответ!
Re: Как в С++ преобразовать тип int в тип char
Добавлено: 05 фев 2010, 20:49
eqltv
IceFlame писал(а):Ну, например,
Это язык си, а вопрос был про C++. В плюсах лучше писать так:
или еще лучше (понятнее)
Re: Как в С++ преобразовать тип int в тип char
Добавлено: 05 фев 2010, 21:28
dmitry1208197320
спасибо, учту
Re: Как в С++ преобразовать тип int в тип char
Добавлено: 05 фев 2010, 21:37
BulldozerBSG
eqltv писал(а):Это язык си, а вопрос был про C++. В плюсах лучше писать так:
или еще лучше (понятнее)
А не одна ли малина, или компилятор код разный генерирует?

Re: Как в С++ преобразовать тип int в тип char
Добавлено: 06 фев 2010, 13:24
Romeo
BulldozerBSG, ну если начинать говорить о С++ преобразованиях типов, то это целая отдельная и очень интересная тема со своей собственной философией. Можем обсудить все тонкости, если хочешь... или если кто-нибудь из посетителей хочет
Будет ли сгенерирован другой код? Для
static_cast не будет. Однако
static_cast более безопасен, так как помимо преобразования как такового, на этапе компиляции он дополнительно осуществляет валидацию правильности преобразования. Любой тип скастить в либой тип с помощью
static_cast нельзя: в случае несоответствия будет выдана ошибка компиляции.