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

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

Войти
Регистрация
Восстановить пароль
 
iMaximuM
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 22
#1

Определить значение двух последних разрядов двоичного числа - C++

05.03.2014, 14:20. Просмотров 398. Ответов 6
Метки нет (Все метки)

Дано число в двоичном виде, нужно узнать значение двух старших разрядов этого числа. Подкиньте идейку или напишите кусок программы, как это можно реализовать. Заранее благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2014, 14:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить значение двух последних разрядов двоичного числа (C++):

Определить, равна ли сума двух первых цифр четирезначного числа суме двух последних - C++
Определить, равна ли сума двух первых цифр четирезначного числа суме двух последних

Посчитать m последних разрядов числа n - C++
Всем привет! В свободное от работы время занимаюсь программированием - подтягиваю свой уровень до того, который был когда-то раньше,...

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

Найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних - C++
найти все четырехзначные числа у которых сумма первых двух цифр равна сумме двух последних.

Проверить как изменится количество разрядов в числе M по сравнению с количеством разрядов числа N - C++
Дано натуральное число N. Определить M=N! Проверить как измениться количевство разрядов в числе M по сравнению с количеством разрядов...

Проверить, как изменилось количество разрядов в числе M по сравнению с количеством разрядов числа N - C++
Выручайте....Дано натуральное число N. Определить M=N!. Проверить, как изменилось количество разрядов в числе M по сравнению с...

6
school_bot
14 / 12 / 3
Регистрация: 23.12.2013
Сообщений: 84
05.03.2014, 15:07 #2
делением на 2?

Добавлено через 6 минут
ну или, что то же самое, >> побитовым сдвигом. если число 8-битовое, то 6 раз.
b = a >> 6. затем если b четное, то предпоследний 0, и выводим b << 1. вот и получили
0
iMaximuM
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 22
05.03.2014, 17:03  [ТС] #3
Делением на 2 хорошая идея, просто я достоверно не знаю, сколько цифр в числе, поэтому, вероятно, только делением.
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
05.03.2014, 17:13 #4
Используйте побитовое смещение >>. Работает шустрее простого деления на 2.
0
MarVaL
С++ Beginner
117 / 117 / 16
Регистрация: 28.02.2013
Сообщений: 246
05.03.2014, 17:22 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "russian");
 
    int someByte;
    cin >> someByte;
 
    cout << "Последний бит: "     << (someByte % 2) << endl
         << "Предпоследний бит: " << ((someByte >> 1) % 2) << endl;
 
    return 0;
}
0
gunslinger
случайный прохожий
1146 / 764 / 197
Регистрация: 20.07.2013
Сообщений: 2,137
05.03.2014, 19:43 #6
Как я понимаю, старшие разряды - это первые цифры слева (а не последние), тогда:
C++
1
2
3
4
5
6
7
8
9
10
  int x = 500;
  while (x > 3)
    x >>= 1;
  switch (x)
  {
    case 3: x = 11; break;
    case 2: x = 10; break;
    case 1: x = 01; break;
    case 0: x = 00;
  }
Только для случая x = 1 или 0 нужно предусмотреть вывод первой цифрой 0.
0
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
05.03.2014, 21:48 #7
Допустим число дано не в двоичном виде...
C++
1
2
unsigned value = 123;
unsigned two_msb = value >> (sizeof( value ) * 8 - 2);
Два старших бита станут двумя младшими.
1
05.03.2014, 21:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 21:48
Привет! Вот еще темы с ответами:

Найти максимальное значение среди разрядов целого числа a - C++
зависает программа, стыдно что не получается даже такое решить( в чем ошибка: #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...

составить линейную программу (сумма двух первых цифр заданного четырёхзначного числа равна сумме двух его последних цифр) - C++
составить линейную программу , печатающую значение true , если указанное высказывание является истинным , и false - в противном случае. ...

Определить сумму чётных разрядов числа и произведение нечётных - C++
Здравствуйте! Вот какое у меня задание. Дано целое число, определить сумму чётных разрядов и произведение нечётных Добавлено через 47...

Дано натуральные числа n и m. Определить суму m последних цифр числа n. - C++
Помогите решить при помощи циклов решить задачу: Дано натуральные числа n и m. Определить суму m последних цифер числа n.


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

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

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