С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/47: Рейтинг темы: голосов - 47, средняя оценка - 4.96
1 / 1 / 0
Регистрация: 31.01.2020
Сообщений: 148

Как выполнить cout в формате bin?

17.02.2020, 13:34. Показов 10467. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
То есть для шестнадцатиричной сисетма, для восьмиричной всё просто:
C++
1
std::cout<<std::hex<<number; // где number - число, которое необходимо представить в hex-виде.
Но почему-то нет на cppreference что-то типо std::bin. Какой самый простой способ вывести переменную в двоичном виде?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2020, 13:34
Ответы с готовыми решениями:

Программа создает бинарный файл, но не сохраняет его в формате .bin, что делать?!
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt; #include &lt;locale.h&gt; #include &lt;string&gt; #include &lt;set&gt; void...

Поставить CloudRaddy в формате bin на Vbox
здравствуйте, уважаемые пользователи. с сайта http://neverware.com скачал cloud-raddy 64. получил образ в формате bin. как теперь...

Сма Zanussi F1415, Поделитесь прошивкой в формате BIN
Фото с шильдом.... https://www.cyberforum.ru/savedimages/2017/01/29/1508800718.jpg

9
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.02.2020, 14:03
std::cout << std::bitset<sizeof(int) * 8>(number) << std::endl;
0
1 / 1 / 0
Регистрация: 31.01.2020
Сообщений: 148
17.02.2020, 14:12  [ТС]
Спасибо! Но там надо ещё <bitset> подключить. Почему на 8?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.02.2020, 14:15
Цитата Сообщение от lukinegor Посмотреть сообщение
Почему на 8?
потому что в байте 8 бит, обычно. ну, можно на std::numeric_limits<unsigned char>::digits умножать, в общем-то.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
17.02.2020, 14:21
GbaLog-, такая уверенность, что number int
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.02.2020, 14:58
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
GbaLog-, такая уверенность, что number int
std::cout << std::bitset<sizeof(decltype(number)) * std::numeric_limits<unsigned char>::digits>(number) << std::endl;
4
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
17.02.2020, 21:16
Заинтересовало. Получился такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bitset>
#include <iostream>
using namespace std;        //Использовать пространство имён std::
    
int main()
 {
     setlocale(LC_ALL, "Rus");  //Устанавливаем русский шрифт
     int num;
     cout << "Введите число" << endl;
     cin >> num;
     cout << hex << num << endl;    //Вывод в 16-тиричной системе
     cout << oct << num << endl;    //Вывод в 8-миричной системе
     cout << bitset<sizeof(int) * 8>(num) << endl;  //Вывод в 2-ичной системе
     cout << bitset<sizeof(decltype(num)) * numeric_limits<unsigned char>::digits>(num) << endl;
 
system ("pause");
    return 0;
 }
12 строку написал интуитивно и она сработала.
Как я понимаю, умножение на 8 необходимо для сдвига битов, т.к. они хранятся в контейнере bitset наоборот. Но это пока всё, что я понял об этом.
GbaLog-, не могли бы вы пояснить что происходит в строках 13 и 14 ?
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
17.02.2020, 21:32
Цитата Сообщение от GbaLog- Посмотреть сообщение
sizeof(decltype(number))
sizeof(number)

Цитата Сообщение от GbaLog- Посмотреть сообщение
std::numeric_limits<unsigned char>::digits
CHAR_BIT
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
18.02.2020, 05:25
Цитата Сообщение от Argus19 Посмотреть сообщение
Как я понимаю, умножение на 8 необходимо для сдвига битов, т.к. они хранятся в контейнере bitset наоборот. Но это пока всё, что я понял об этом.
нет, умножение на 8(или на CHAR_BIT и пр.) нужно потому, что оператор sizeof возвращает кол-во байт, а контейнер bitset в своём шаблонном параметре принимает кол-во бит.
Цитата Сообщение от Argus19 Посмотреть сообщение
GbaLog-, не могли бы вы пояснить что происходит в строках 13 и 14 ?
строки 13 и 14 - идентичны. во всяком случае, на системах, где байт содержит 8 бит.
а происходит то, что создаётся класс std::bitset с размером sizeof(int) * 8 и в него передаётся int.
у самого std::bitset нет конструктора, который бы принимал int, но есть конструктор, который принимает unsigned long long.
соответственно, int неявно приводится к unsigned long long и пердаётся в конструктор.
после этого с помощью оператора <<, перегруженного для std::ostream, всё выводится в стандартный поток вывода.

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
sizeof(number)
да, ошибка. :cry:
Цитата Сообщение от Croessmah Посмотреть сообщение
CHAR_BIT
честно скажу, я сначала так и написал, не задумываясь,
но потом подумал, что надо с++-way. :)

1
18.02.2020, 07:47

Не по теме:

Цитата Сообщение от GbaLog- Посмотреть сообщение
но потом подумал, что надо с++-way.
<climits> вместо <limits.h> )))

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2020, 07:47
Помогаю со студенческими работами здесь

Нужна прошивка без акваспрея, Помогите. В формате bin
Модель сма : Модуль такой: https://www.cyberforum.ru/savedimages/2017/04/30/6321119913.jpg ...

Как выполнить сценарий изложенный в текстовом формате?
господа пожалуйста помогите в вопросе который в данный момент не дает мне покоя. есть ли возможность выполнить в делфи определенную...

сма HANSA PA4580A520, Нужна прошивка без акваспрея в формате bin
Всем доброго времечка.сма Нansa. Залило актуатор водой. Пробит порт по акваспрею.Нужна прошивка без акваспрея.

Сма Ariston ARSL 1050 (cis), Нужна прошивка в формате bin
Помогите прошивкой. Данные с шильда: s/n 905145198 * 80544400100

Поделитесь прошивками на две сма Bosch, Прошивки нужны в формате bin
Нужны две прошивки на две сма Bosch. В формате bin. Буду очень благодарен. Данные на первую сма. Данные на вторую сма. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru