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

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

Восстановить пароль Регистрация
 
NiceProgrammer
 Аватар для NiceProgrammer
-11 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 23
20.04.2014, 19:09     Для заданного положительного целого вывести младший бит #1
Младший бит
Для заданного положительного целого 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++ Найти первые N чисел при которых младший бит является зеркальным отражением следуещего бита
C++ Инвертировать младший байт длинного целого числа
Вывести на экран все нечетные цифры целого положительного числа C++
C++ Вывести на экран 1 или 0 в зависимости от того, есть ли среди первых трех цифр дробной части заданного положительного вещественного числа цифра ноль
C++ Для заданного целого числа n вычислить значение суммы
. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа C++
Для вводимого целого положительного числа определите его двоичный эквивалент C++
Для вводимого целого положительного числа определите его двоичный эквивалент C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4265 / 3696 / 1243
Регистрация: 14.04.2014
Сообщений: 14,476
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
 Аватар для NiceProgrammer
-11 / 0 / 0
Регистрация: 28.10.2013
Сообщений: 23
20.04.2014, 22:56  [ТС]     Для заданного положительного целого вывести младший бит #3
Так просто)) Спасибо...
Yandex
Объявления
20.04.2014, 22:56     Для заданного положительного целого вывести младший бит
Ответ Создать тему
Опции темы

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