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

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

Войти
Регистрация
Восстановить пароль
 
NiceProgrammer
-11 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 23
#1

Для заданного положительного целого вывести младший бит - C++

20.04.2014, 19:09. Просмотров 689. Ответов 2
Метки нет (Все метки)

Младший бит
Для заданного положительного целого A (1 ≤ A ≤ 100), вывести младший бит A.

Например, если A = 26, то его мы можем записать в двоичном виде, как 11010, и младший бит A есть 10, и на выходе должно быть 2.

Другой пример выглядит следующим образом: при A = 88, это число A мы можем записать в двоичной форме 1011000, младший бит в A есть 1000, и на выходе должно быть 8.


Технические условия
Входные данные

Каждая строка входных данных содержит только одно целое число A (1 ≤ A ≤ 100). Строка, содержащая "0" означает конец ввода, и эта строка не является частью входных данных.

Выходные данные

Для каждого числа A, полученного на входе, в отдельной строке вывести значение его младшего бита.

Пример
Пример входных данных
26
88
0
Пример выходных данных
2
8

Проблема в том что выводит только значение младшего бита 1-го числа! Пробывал сделать как надо массивами, но выводило полный бред! Подскажите что и как тут поменять что бы выводилось значение младших битов каждого элемента!

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
30
31
32
33
34
35
#include <iostream>
#include <math.h>
using namespace std;
int main(){
    int n[100],i=1, k, l=1, str[100], kl=0;
    n[0]=1;
    while(n[i-1]!=0){
    cin>>n[i];
    i++;}
    k=i;
    
    int j=0;
    for(i=1; i<k-1; i++)
    while(n[i]!=0){
      if (n[i]%2==0)
      str[j]=0;
    else
      str[j]=1;
      n[i]/=2;
      j++;
}
k=j;
for(j=0; j<k; j++){
if(str[j]==0)
l*=10;
else
break;}
 
    while(l>0){
    l/=10;
    kl++;}
kl=pow(2,kl-1);
cout<<kl<<endl;
system ("Pause");
    return 0;}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 19:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для заданного положительного целого вывести младший бит (C++):

Вывести старший и младший байт заданного целого положительного числа в шестнадцатиричном и двоичном виде - C++
Дано целое положительное число , тип int. Вывести старший и младший байт в 16ом и в 2ом виде.

Бит 8, младший и старший бит (по книге) - C++
Добрый день. Вот читаю книгу, и не пойму элементарной на первый взгляд вещи. Как понять следующие предложения: 1) Если бит...

Установить в единицу каждый второй бит заданного целого числа - C++
Доброго времени суток . Такая вот задача : установить в единицу каждый второй бит целого числа А. Догадываюсь что нужно делать через...

Вывести 6 бит целого числа А, начиная со 2-ого - C++
Никак не могу вникнуть в суть этих побитовых операций. Здесь, по идее, нужно указать некую маску(прошу объяснить, как его кушают, я,...

Вывести количество десятичных цифр, необходимых для представления заданного целого числа - C++
Ввести целое N. Вывести количество десятичных цифр, необходимых для представления этого числа. Добавлено через 23 часа 13 минут ...

Вывести на экран все нечетные цифры целого положительного числа - C++
Помогите решить задачу пожалуйста&quot; Вывести на экран все нечетные цифры целого положительного числа&quot;

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5309 / 4629 / 1548
Регистрация: 14.04.2014
Сообщений: 18,437
20.04.2014, 20:08 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Не младший бит, а младший ненулевой бит.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    #include <iostream>
int n[100], i=1, k, div;
    n[0]=1;
    while(n[i-1]!=0){
    cin>>n[i];
    i++;}
    k=i;
 
    for (i = 1; i < k - 1; i++)
    {
        int div = 2; // Делитель
        while(n[i] % div == 0)
        {
            div *= 2;
        }
        cout << "number: " << n[i] << " result: " << div / 2 << endl;
    }
 
    
system ("Pause");
return 0;
NiceProgrammer
-11 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 23
20.04.2014, 22:56  [ТС] #3
Так просто)) Спасибо...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2014, 22:56
Привет! Вот еще темы с ответами:

Из заданного диапазона найти и вывести на консоль числа, младший разряд которых равен заданным цифрам - C++
Добрый день! не могли бы мне помочь решить вот эту задачу: с диапазона от 1 до 1000 найти и вывести те числа которые заканчиваются на 3...

Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K - C++
Помогите выполнить задание. Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K (цифры в...

Для вводимого целого положительного числа определите его двоичный эквивалент - C++
Профессионалы помоги пожалуйста!) Скинули лабораторные нужно коменты к строчкам чтобы знать, что ответить на вопрос &quot;что тут?&quot; ...

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


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

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

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