С++ и шестнадцатиричные и двоичные числа (Вопрос чайника(хорошего) - как преобразовывать?)

Модератор: Модераторы разделов

Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение Jan2ary »

Будет надоедать -- порежу

В тебе умер великий педагог! :)
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение t.t »

В тебе умер великий педагог!
Почему умер? :) Некоторый опыт преподавания уже имеется, да и вдальнейшем продолжение этого опыта совсем не исключено.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
powerfox
Сообщения: 458

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение powerfox »

To t.t. - printf() - функция С, а я спрашивал про С++(а не про С подмножество С++)
Для того чтобы закрыть топик - правильный ответ(с forum.vingrad.ru - та в теме было всего 6 ответов)

Код: Выделить всё

#include <iostream>
#include <iomanip>
int main() {
    char c = 'X' ^ 'W';
    std::cout << std::hex << std::setw(2) << std::setfill('0');
    std::cout << int(c);
}


hex, setw и setfill - это так называемые манипуляторы. Среди перегруженных вариантов оператора << класса std::ostream есть такой, который принимает ф-цию, модифицирующую состояние потока. Применение манипулятора выглядит как ввод/вывод какого-то значения, но на деле устанавливает некие флаги.
Эта строчка указывает, что целые числа будут выводиться в шестандцатеричном формате, причем вывод должен занимать не менее двух символов, и при необходимости дополняться слева символом '0'. Поэтому программа выведет "0f".
Всё это описано в главе 21.4 (3-е издание Страуструпа) - никакого asma ;)
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение Jan2ary »

Посрамил.
А главу 21.4 (3-е издание Страуструпа) сам прочел, или на форуме подсказали?
А что происходит при char c = 'X' ^ 'W' понял?
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение t.t »

To t.t. - printf() - функция С, а я спрашивал про С++(а не про С подмножество С++)
Так и сказали бы, что вас интересует чисто-сиплюсплюснутый ответ.. А вообще можете посмотреть исходники серьёзных плюсовых программ -- там printf/scanf используются чуть ли не чаще, чем cin/cout...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
powerfox
Сообщения: 458

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение powerfox »

Jan2ary писал(а):
04.10.2005 15:08
Посрамил.
А главу 21.4 (3-е издание Страуструпа) сам прочел, или на форуме подсказали?
А что происходит при char c = 'X' ^ 'W' понял?

На форуме подсказали номер главы и код. Главу только пролистнул, там много описаний классов..., т.е. того, до чего я пока не дошёл.
Код из книги несколько отличается:

Код: Выделить всё


cout.setf(ios_base::oct, ios_base::basefield); //восьмеричная
cout << 1234;


Для шестнадцатиричной oct меняем на hex
Спасибо сказали:
n1tr0gen
Сообщения: 149

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение n1tr0gen »

Всё это описано в главе 21.4 (3-е издание Страуструпа) - никакого asma

Изучить основы ассемблера все равно необходимо. Без этого ты никогда не сможешь писать эффективные программы. Ссылку на русском тебе уже давали http://wasm.ru/article.php?article=1022001 - читать от корки до корки и выполнять все, что там написано, как бы "примитивно" тебе это не казалось. Именно ВЫПОЛНЯТЬ, а не "интерпретировать" в голове. Ты должен получить опыт, по-другому неполучится. GL!!!
Спасибо сказали:
Аватара пользователя
powerfox
Сообщения: 458

Re: С++ и шестнадцатиричные и двоичные числа

Сообщение powerfox »

n1tr0gen писал(а):
07.10.2005 17:14
Всё это описано в главе 21.4 (3-е издание Страуструпа) - никакого asma

Изучить основы ассемблера все равно необходимо. Без этого ты никогда не сможешь писать эффективные программы. Ссылку на русском тебе уже давали http://wasm.ru/article.php?article=1022001 - читать от корки до корки и выполнять все, что там написано, как бы "примитивно" тебе это не казалось. Именно ВЫПОЛНЯТЬ, а не "интерпретировать" в голове. Ты должен получить опыт, по-другому неполучится. GL!!!

Спасибо, почитаю. Просто сейчас времени мало.
Спасибо сказали: