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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.64
4atty
 Аватар для 4atty
45 / 45 / 1
Регистрация: 09.06.2011
Сообщений: 117
#1

пользователь вводит число, вывести на экран его побитово - C++

09.06.2011, 20:48. Просмотров 3642. Ответов 15
Метки нет (Все метки)

Всем привет
Подскажите плз как сделать вот это задание
пользователь вводит число,
вывести на экран его побитово


Заранее спасибо)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 20:48     пользователь вводит число, вывести на экран его побитово
Посмотрите здесь:

C++ Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.
пользователь вводит число, вывести на экран его побитово C++
C++ Пользователь вводит строку вывести на экран количество слов
Пользователь вводит с клавиатуры натуральное число меньшее 10000 C++
C++ пользователь вводит пароль,программа должна его вычислить перебором
пользователь вводит 3 произвольных числа. нужно проверить, составляют ли они геометрическую прогрессию и, если составляют, вывести на экран первые 10 C++
Пользователь вводит с клавиатуры 5 чисел. Программа выводит на экран их среднее арифметическое C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
09.06.2011, 21:05     пользователь вводит число, вывести на экран его побитово #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Не тестил в блокноте написал, так что проверь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main() {
  int n;
  cout << "Введите число: ";
  cin >> n;
  for (int i = sizeof(int) * 8; i > -1; --i)
  cout << (n >> i) & 1;
  sustem("pause");
  return 0;
}
4atty
 Аватар для 4atty
45 / 45 / 1
Регистрация: 09.06.2011
Сообщений: 117
09.06.2011, 21:19  [ТС]     пользователь вводит число, вывести на экран его побитово #3
Спасибо ! ! !
MaXiDRoM_90
11 / 11 / 1
Регистрация: 21.03.2010
Сообщений: 47
09.06.2011, 21:22     пользователь вводит число, вывести на экран его побитово #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main() {
  int n;
  cout << "Введите число: ";
  cin >> n;
  cout<<"\n";
  for (int i = 0; i <32; i++)
  cout << (n >> 31-i) & 1;
  sustem("pause");
  return 0;
}
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
09.06.2011, 21:23     пользователь вводит число, вывести на экран его побитово #5
А я бы сделал так:
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
#include <stdio.h>
#include <conio.h>
 
typedef struct
{
    int b1:1;
    int b2:1;
    int b3:1;
    int b4:1;
    int b5:1;
    int b6:1;
    int b7:1;
    int b8:1;
}bits;
 
void main()
{
    int number;
    bits *bn;
    printf("Please input number: ");
    scanf("%d", &number);
    bn = (bits *)&number;
 
    printf("Bits of number:\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d", -bn->b1, -bn->b2, -bn->b3, -bn->b4, -bn->b5, -bn->b6, -bn->b7, -bn->b8);
    getch();
}
MaXiDRoM_90
11 / 11 / 1
Регистрация: 21.03.2010
Сообщений: 47
09.06.2011, 21:24     пользователь вводит число, вывести на экран его побитово #6
CyberHunter, это если число до 2^8
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
09.06.2011, 21:27     пользователь вводит число, вывести на экран его побитово #7
Цитата Сообщение от MaXiDRoM_90 Посмотреть сообщение
это если число до 2^8
это как раз любое число до 2^8, то есть тип данных long int,
можно по аналогии сделать и для double без проблем, если надо, но в Вашей программе всё равно для ввода числа используется тип int.
MaXiDRoM_90
11 / 11 / 1
Регистрация: 21.03.2010
Сообщений: 47
09.06.2011, 21:39     пользователь вводит число, вывести на экран его побитово #8
CyberHunter, long int как и int до 2^31
CyberHunter
12 / 12 / 1
Регистрация: 03.08.2010
Сообщений: 61
09.06.2011, 22:09     пользователь вводит число, вывести на экран его побитово #9
Цитата Сообщение от MaXiDRoM_90 Посмотреть сообщение
CyberHunter, long int как и int до 2^31
пардон, перепутал немного, действительно=)

сейчас исправлю

Добавлено через 25 минут
например так:
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
#include <stdio.h>
#include <conio.h>
 
typedef struct
{
    char b1:1;
    char b2:1;
    char b3:1;
    char b4:1;
    char b5:1;
    char b6:1;
    char b7:1;
    char b8:1;
} bits;
 
void main()
{
    int number;
    char n;
    bits *bn;
    printf("Please input number: ");
    scanf("%d", &number);
    bn = (bits *)&number;
 
    printf("Bits of number:");
    for(n = 0; n < 4; n++)
        printf("\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d", -bn[n].b1, -bn[n].b2, -bn[n].b3, -bn[n].b4, -bn[n].b5, -bn[n].b6, -bn[n].b7, -bn[n].b8);
    getch();
}
но Ваш код правильнее будет и проще, как из учебника прям =)
я что-то туплю сижу, писал сегодня программу по расстановке максимального количества не бьющих друг друга шахматных фигур на доске, вот там попарился...
kazak
10.06.2011, 00:15
  #10

Не по теме:

Цитата Сообщение от MaXiDRoM_90 Посмотреть сообщение
CyberHunter, long int как и int до 2^31
До 2^32, если что

OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
10.06.2011, 00:22     пользователь вводит число, вывести на экран его побитово #11
Цитата Сообщение от kazak Посмотреть сообщение
До 2^32, если что
а вот и нет
1 разряд идет под знак!
kazak
 Аватар для kazak
3030 / 2351 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.06.2011, 00:25     пользователь вводит число, вывести на экран его побитово #12
Цитата Сообщение от Onishare Посмотреть сообщение
cout << (n >> i) & 1;
попробуй таким образом вывести отрицательное число в двоичном виде))
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
10.06.2011, 00:30     пользователь вводит число, вывести на экран его побитово #13
блин когда нужно перевести число в двоичное я обычно делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    char *str;
 
    long int val=-156;
 
    str = new char[sizeof(val)*8+1];
    itoa(val,str,2); // не переносимо, знаю
 
    puts(str);
 
    delete[] str;
 
    getchar();
    return 0;
}
я негодяй?
kazak
 Аватар для kazak
3030 / 2351 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.06.2011, 00:35     пользователь вводит число, вывести на экран его побитово #14
А сколько знаков то получается?)
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
10.06.2011, 00:58     пользователь вводит число, вывести на экран его побитово #15
kazak,
так нормально там знаков получается))
если доп код то много , а если обычный то нет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 08:51     пользователь вводит число, вывести на экран его побитово
Еще ссылки по теме:

пользователь вводит трехзначное число C++
Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран C++
C++ Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр
Пользователь вводит 3 числа с клавиатуры. Вывести на экран наименьшее и наибольшее число C++
Пользователь вводит с клавиатуры две границы диапазона и число. Проверить, попадает ли число в диапазон C++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
10.06.2011, 08:51     пользователь вводит число, вывести на экран его побитово #16
Цитата Сообщение от CyberHunter
А я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
typedef struct
{
        int b1:1;
        int b2:1;
        int b3:1;
        int b4:1;
        int b5:1;
        int b6:1;
        int b7:1;
        int b8:1;
}bits;
это неправильно, если они и находятся рядом, то не определён их порядок

C89(draft). 3.5.2.1 Structure and union specifiers
A bit-field may have type int , unsigned int , or signed int .
Whether the high-order bit position of a ``plain'' int bit-field is
treated as a sign bit is implementation-defined. A bit-field is
interpreted as an integral type consisting of the specified number of
bits.

An implementation may allocate any addressable storage unit large
enough to hold a bit-field. If enough space remains, a bit-field that
immediately follows another bit-field in a structure shall be packed
into adjacent bits of the same unit. If insufficient space remains,
whether a bit-field that does not fit is put into the next unit or
overlaps adjacent units is implementation-defined. The order of
allocation of bit-fields within a unit (high-order to low-order or
low-order to high-order) is implementation-defined. The alignment of
the addressable storage unit is unspecified.
Yandex
Объявления
10.06.2011, 08:51     пользователь вводит число, вывести на экран его побитово
Ответ Создать тему
Опции темы

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