Форум программистов, компьютерный форум CyberForum.ru

Вывести на экран бинарный код целого числа - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.77
AquaSky
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 18
11.10.2008, 13:23     Вывести на экран бинарный код целого числа #1
как вывести на экран бинарный код целого числа?
Пример:
C++
1
2
3
4
int a=0;
cin>>a;
// консольный вывод бинарного значения а.
// (например у 1 он 0001)
Добавлено через 35 секунд
можно на С можно на С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2008, 13:23     Вывести на экран бинарный код целого числа
Посмотрите здесь:

Вывести на экран все нечетные цифры целого положительного числа C++
Вывести на экран второго и шестандцатую эквиваленты целого числа. Не использовать спецификатор типа% х,% Х в функции printf. C++
C++ Сгенерировать и вывести на экран массив из целого числа n случайных чисел
C++ Массивы (ввести данные целого типа, вывести на экран, выполните обмен значениями)
Работа с файлами. Вывести бинарный код файла на экран в Visual C++ C++
Генерировать и вывести на экран массив с целого числа n случайных чисел от -100 до 100 C++
Сгенерировать и вывести на экран массив из целого числа n случайных чисел от -120 до 120 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
11.10.2008, 13:33     Вывести на экран бинарный код целого числа #2
Переопредели оператор << для такого вывода
AquaSky
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 18
11.10.2008, 13:35  [ТС]     Вывести на экран бинарный код целого числа #3
Цитата Сообщение от igor_nf Посмотреть сообщение
Переопредели оператор << для такого вывода
а можно подробнее?
Sergei
 Аватар для Sergei
1424 / 691 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
13.10.2008, 12:14     Вывести на экран бинарный код целого числа #4
Он имеет ввиду необходимо перегрузить оператор<< для вывода бинарного числа
WaRLoCK_UA
 Аватар для WaRLoCK_UA
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 20
13.10.2008, 17:02     Вывести на экран бинарный код целого числа #5
Хмм... думаю что можно не переопределять оператор <<... хотя возможно я так думаю так как не умею этого)
Можно просто перевести число из десятичной системы в двуичную!

Добавлено через 24 минуты 11 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <windows.h>
using namespace std;
void print(char* src);
int HowMany(int num);
void main()
{
    int num; print("Введите число: "); cin>>num;        //Создаем и вводим число
    int size=HowMany(num);                              //Определяем необходимый размер для массива 1-иц и 0-ей
    int* binary=new int[size];                          //Создаем массив под 1 и 0
    for(int i=size-1;i>=0;i--)
    {
        binary[i]=num%2;                                //Заполняем его с конца
        num/=2;                                         //и делим num на 2
    }
    for(int i=0;i<size;i++)
        cout<<binary[i];
    cout<<'\n';
}
void print(char* src)
{
    char dst[256];
    CharToOem(src,dst);
    cout<<dst;
}
int HowMany(int num)
{
    int size=0;
    for(;num!=1;num=num/2)
        size++;
    return size+1;
}
А вот и пример, щас попробую обяснить...

Добавлено через 5 минут 14 секунд
Преобразование десятичных чисел в двоичные

Допустим, нам нужно перевести число 19 в двоичное. Вы можете воспользоваться следующей процедурой :
Код
19 /2 = 9  с остатком 1
9  /2 = 4  c остатком 1
4  /2 = 2  с остатком 0
2  /2 = 1  с остатком 0
1  /2 = 0  с остатком 1
Результат - 10011
Ставим числа из остатка друг за другом, начиная с конца. В результате получаем число 19 в двоичной записи (начиная с конца): 10011.
ABTOP
 Аватар для ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
13.10.2008, 18:05     Вывести на экран бинарный код целого числа #6
На моё мнение так проще и удобнее... но предыдущий пример нагляднее

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
 
void main()
{
     int a;
     cin>>a;
     for(int i=0; i<8;i++)
          cout<<(a & (256>>i)?'1':'0');
     cout<<endl;
}
WaRLoCK_UA
 Аватар для WaRLoCK_UA
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 20
13.10.2008, 18:20     Вывести на экран бинарный код целого числа #7
Цитата Сообщение от ABTOP Посмотреть сообщение
На моё мнение так проще и удобнее... но предыдущий пример нагляднее
Я еще только новичок...))
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
13.10.2008, 21:30     Вывести на экран бинарный код целого числа #8
На моё мнение так проще и удобнее...
Ты наверное хотел сказать вот так ?
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
 
void main()
{
     int a;
     cin>>a;
     for(int i=0; i<8;i++)
          cout<<(a & (256>>i + 1)?'1':'0');
     cout<<endl;
}
Skaffi
 Аватар для Skaffi
1 / 1 / 0
Регистрация: 13.10.2008
Сообщений: 10
13.10.2008, 21:55     Вывести на экран бинарный код целого числа #9
igor_nf, в "Философии С++" Брюса Эккеля приводится хорошая функция:

C++
1
2
3
4
5
6
7
void printBinary (unsigned char val)
{
  for (int i=7; i>0; i--)
  if (val & (1<<i))
    cout << "1";
  else cout << "0";
}
она хорошо работает)))
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
13.10.2008, 23:07     Вывести на экран бинарный код целого числа #10
она хорошо работает)))
Смотрим..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
void printBinary (unsigned char val)
{
  for (int i=7; i>0; i--)
  if (val & (1<<i))
  std::cout << "1";
  else std::cout << "0";
}
 
int main() {
  printBinary [b](3)[/b];
}
Вывод:
0000001

Да уж.. Действительно философ..
Skaffi
 Аватар для Skaffi
1 / 1 / 0
Регистрация: 13.10.2008
Сообщений: 10
13.10.2008, 23:17     Вывести на экран бинарный код целого числа #11
Смотрим..
у меня работает. просто делай нормально.
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    unsigned int getval;
    unsigned char a;
    cout << "Enter a number 0-255 ";
    cin >> getval;
           a = (unsigned char)getval;
    printBinary(a);
    cout << endl;
}
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
13.10.2008, 23:29     Вывести на экран бинарный код целого числа #12
у меня работает. просто делай нормально.
Слушай, чувство юмора у тебя, я гляжу, не страдает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
void printBinary (unsigned char val)
{
  for (int i=7; i>0; i--)
  if (val & (1<<i))
  cout << "1";
  else cout << "0";
}
 
int main()
{
unsigned int getval;
unsigned char a;
cout << "Enter a number 0-255 ";
cin >> getval;
a = (unsigned char)getval;
printBinary(a);
cout << endl;
}
Ввод: 3
Вывод: 0000001

Ввод: 10
Вывод: 0000101
Skaffi
 Аватар для Skaffi
1 / 1 / 0
Регистрация: 13.10.2008
Сообщений: 10
13.10.2008, 23:35     Вывести на экран бинарный код целого числа #13
бред какой-то. то, что ты скидываешь, реально так выводит. смотри как у меня сделано.

есть 2 файла.
первый:

//pod.cpp неважно, что сpp расширение. раньше так стояло, сейчас менять уже не буду...
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
void printBinary (const unsigned char val)
{
    for(int  i=7; i>=0; i--)
        if (val & (1<<i))
            cout << "1";
        else 
            cout << "0";
}
теперь второй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "pod.cpp"
using namespace std;
 
int main()
{
    unsigned int getval;
    unsigned char a, b;
    cout << "Enter a number 0-255 ";
    cin >> getval;
 
 a =(unsigned char) getval;
     printBinary(a);
     cout << endl;
}
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
13.10.2008, 23:41     Вывести на экран бинарный код целого числа #14
Цитата Сообщение от Skaffi Посмотреть сообщение
бред какой-то. то, что ты скидываешь, реально так выводит. смотри как у меня сделано.
for(int i=7; i>=0; i--)

Разница есть по сравнению с пред. вариантом ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2008, 23:44     Вывести на экран бинарный код целого числа
Еще ссылки по теме:

Заданы числа x и y. Если их сумма положительная, вывести на экран эти числа, иначе вывести их разницу C++
Рекурсивно вывести цифры целого числа в обратном порядке C++
посчитать и вывести на экран количество целого и десятичного числа C++
Функция вывода на экран всех множителей целого числа C++
C++ Вывести 6 бит целого числа А, начиная со 2-ого

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

Или воспользуйтесь поиском по форуму:
Skaffi
 Аватар для Skaffi
1 / 1 / 0
Регистрация: 13.10.2008
Сообщений: 10
13.10.2008, 23:44     Вывести на экран бинарный код целого числа #15
нашла, где у тебя ошибка!!!!
При определении функции printBinary тебе надо писать

printBinary(const unsigned char val)

а ты пишешь:

printBinary(unsigned char val)

поэтому и не работает..

Добавлено через 1 минуту 2 секунды
Цитата Сообщение от igor_nf Посмотреть сообщение
for(int i=7; i>=0; i--)

Разница есть по сравнению с пред. вариантом ?
вот этот правильный. прости за i>0. тогда он 7 бит выводит. а надо 8.
Yandex
Объявления
13.10.2008, 23:44     Вывести на экран бинарный код целого числа
Ответ Создать тему
Опции темы

Текущее время: 22:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru