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

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

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

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

20.04.2014, 19:09. Просмотров 644. Ответов 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++
C++ Если символ — русская гласная буква, то заменить в нем младший бит единицей
C++ Если символ — русская гласная буква, то заменить в нем младший бит единицей
Для вводимого целого положительного числа определите его двоичный эквивалент C++
Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K C++
Сравнить младший бит в двоичном представлении определённых целых значений C++
C++ Вывести старший и младший байт заданного целого положительного числа в шестнадцатиричном и двоичном виде
Бит 8, младший и старший бит (по книге) C++
C++ Из заданного диапазона найти и вывести на консоль числа, младший разряд которых равен заданным цифрам
C++ Вывести 6 бит целого числа А, начиная со 2-ого
C++ Установить в единицу каждый второй бит заданного целого числа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4921 / 4259 / 1426
Регистрация: 14.04.2014
Сообщений: 16,745
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
Так просто)) Спасибо...
Yandex
Объявления
20.04.2014, 22:56     Для заданного положительного целого вывести младший бит
Ответ Создать тему
Опции темы

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