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

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

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

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

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

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


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

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

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

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

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

Пользователь вводит 3 числа с клавиатуры. Вывести на экран наименьшее и наибольшее число - C++
Пользователь вводит 3 числа с клавиатуры. Вывести на экран наименьшее и наибольшее число. Без масивов, нужно просто и примитивно.

Пользователь вводит строку вывести на экран количество слов - 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
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
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
10.06.2011, 00:22 #11
Цитата Сообщение от kazak Посмотреть сообщение
До 2^32, если что
а вот и нет
1 разряд идет под знак!
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
10.06.2011, 00:25 #12
Цитата Сообщение от Onishare Посмотреть сообщение
cout << (n >> i) & 1;
попробуй таким образом вывести отрицательное число в двоичном виде))
OstapBender
583 / 521 / 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
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
10.06.2011, 00:35 #14
А сколько знаков то получается?)
OstapBender
583 / 521 / 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, 00:58
Привет! Вот еще темы с ответами:

Пользователь вводит целое число n и ДВА символа. Программа выводит на экран последовательно символ №1 и символ - C++
Пользователь вводит целое число n и ДВА символа. Программа выводит на экран последовательно символ №1 и символ №2 n-раз. ...

пользователь вводит 3 произвольных числа. нужно проверить, составляют ли они геометрическую прогрессию и, если составляют, вывести на экран первые 10 - C++
помогите, пожалуйста. пользователь вводит 3 произвольных числа. нужно проверить, составляют ли они геометрическую прогрессию и, если...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.06.2011, 00:58
Ответ Создать тему
Опции темы

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