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

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

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


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

C++ Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.
пользователь вводит число, вывести на экран его побитово C++
C++ Пользователь вводит строку вывести на экран количество слов
пользователь вводит 3 произвольных числа. нужно проверить, составляют ли они геометрическую прогрессию и, если составляют, вывести на экран первые 10 C++
Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран 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
10 / 10 / 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
10 / 10 / 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
10 / 10 / 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
3029 / 2350 / 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
3029 / 2350 / 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++ Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр
Пользователь вводит 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     пользователь вводит число, вывести на экран его побитово
Ответ Создать тему
Опции темы

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