Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.74
Lovenok
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 7
#1

Двоичный код числа - C++

26.01.2010, 08:52. Просмотров 5537. Ответов 7
Метки нет (Все метки)

Вывести на экран двоичный код однобайтового числа типа char.
Теперь надо чтобы программа работала только с беззнаковыми данными. Помогите!!
Код
#include<iostream.h>                //подключение библеотеки printf и scanf
int main()                          //функция main
{
    char number;                    //число
    printf("Vvedite chislo:");
    scanf("%d",&number);            //считывание числа
    printf("Dvoichnii kod chisla:");
    int i;
    for (i = 7; i >= 0; i--)    //напечатать одно байтовое число в двоичном коде
    {
        int mask = 1 << i;          //расчёт маски
        if ( (mask & number) == 0 ) //определение бита
        {
            printf(" 0");           //напечатать 0
        }
        else printf(" 1");          //напечатать 1
    }
    return 0;                       //если программа выполнилась успешно
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 08:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Двоичный код числа (C++):

Перевод числа в двоичный код - C++
Знаю вопрос детский но как перевести число в двоичный код, в 16-й и в 8-й знаю %x и %o а вот в двоичный нет.

перевод десятичного вещественного в машинный код(двоичный код) - C++
пожалуйста , подскажите пожалуйста код C++ ,для перевода вещественного числа в машиное (двоичное представление,32 бит). Без использования...

Двоичный код - C++
Подскажите пожалуйста как возможно работать на С++ с двоичным кодом (b). И возможно ли это в вообще в С и нужно использовать только...

двоичный код - C++
есть число в десятичной системе ( напр. 25 ) нужно перевести его в двоичную систему ( 11001 ) затем переставить все 1 вперед а 0 назад...

двоичный код - C++
В общем задание такое: вводим число, присвоиваем переменной, на эту перемменную указатель, и нужно вытащить побитово значение этой...

Перевод в двоичный код - C++
напишите программу, которая запрашивает у пользователя целое число и выводит его в двоичном представлении. но нужно использовать только...

7
accept
4831 / 3252 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
26.01.2010, 09:04 #2
C
1
char number;
C
1
scanf("%d",&number);
C
1
int mask = 1 << i;

C
1
unsigned char number;
C
1
scanf("%d", (int *) &number);
C
1
unsigned int mask = 1 << i;
0
Lovenok
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 7
26.01.2010, 09:21  [ТС] #3
Цитата Сообщение от accept Посмотреть сообщение
C
1
char number;
C
1
scanf("%d",&number);
C
1
int mask = 1 << i;

C
1
unsigned char number;
C
1
scanf("%d", (int *) &number);
C
1
unsigned int mask = 1 << i;
А можно было так написать:
Код
#include<iostream.h>                //подключение библеотеки printf и scanf
int main()                          //функция main
{
    [B]unsigned char number;    [/B]                //число
    printf("Vvedite chislo:");
    scanf("%d",&number);            //считывание числа
    printf("Dvoichnii kod chisla:");
    int i;
    for (i = 7; i >= 0; i--)    //напечатать одно байтовое число в двоичном коде
    {
        int mask = 1 << i;          //расчёт маски
        if ( (mask & number) == 0 ) //определение бита
        {
            printf(" 0");           //напечатать 0
        }
        else printf(" 1");          //напечатать 1
    }
    return 0;                       //если программа выполнилась успешно
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9967 / 5890 / 996
Регистрация: 25.07.2009
Сообщений: 11,156
26.01.2010, 10:39 #4
А можно и вот так:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
    
int main(void){
    unsigned char c;
    int i;
    printf("Number: ");
    scanf("%u", &c);
    for (i = 7; i >= 0; --i )
        printf("%d", ( c & 1 << i ) ? 1 : 0);
    printf("\n");
    return 0;
}
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
26.01.2010, 10:48 #5
C++ way
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <bitset>
#include <sstream>
#include <string>
 
std::string dec2bin(char c) {
  std::bitset<sizeof(c) * 8> bs(c);
  std::stringstream ss;
  ss << bs;
  std::string result;
  ss >> result;
  return result;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
  std::string res = dec2bin('z');
  return 0;
}
0
Lovenok
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 7
26.01.2010, 10:52  [ТС] #6
Цитата Сообщение от easybudda Посмотреть сообщение
А можно и вот так:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
    
int main(void){
    unsigned char c;
    int i;
    printf("Number: ");
    scanf("%u", &c); что означает %u
    for (i = 7; i >= 0; --i )
        printf("%d", ( c & 1 << i ) ? 1 : 0); и вот это можно прокомментировать?
    printf("\n");
    return 0;
}
Я просто совсем новичок
0
easybudda
Модератор
Эксперт CЭксперт С++
9967 / 5890 / 996
Регистрация: 25.07.2009
Сообщений: 11,156
26.01.2010, 11:10 #7
Цитата Сообщение от Lovenok Посмотреть сообщение
scanf("%u", &c); что означает %u
Десятичное число без знака (см. описание scanf())

Цитата Сообщение от Lovenok Посмотреть сообщение
printf("%d", ( c & 1 << i ) ? 1 : 0); и вот это можно прокомментировать?
Можно. Если выражение ( c & 1 << i ) истинно (не равно нулю), printf("%d", 1); если ложно, printf("%d", 0);
0
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
26.01.2010, 17:19 #8
Можно собственно и без проверок
C
1
2
for(i = 7; i >= 0; --i)
    printf("%d", (number>>i)&1);
1
26.01.2010, 17:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2010, 17:19
Привет! Вот еще темы с ответами:

Двоичный код Хоффмана - C++
Помогите написать программу на С++ по заданному тексту задания(задание на фото)?

Двоичный код символа - C++
мне нужно из символа, после считывания из файла получить его двоичный код!!! подскажите плиз как это сделать!!!

Преобразование в двоичный код С. - C++
Задание следующее: Написать программу, которая получает случайное целое типа int,выводит егодвоичное представление на экран, выполняет...

Перевод double в двоичный код - C++
Здравствуйте! Пожалуйста, скажите в какую сторону смотреть, не пойму как такое реализовать. С интом все просто, нужно делить,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru