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

Операция побитового сдвига - C++

Восстановить пароль Регистрация
 
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
14.02.2013, 20:48     Операция побитового сдвига #1
Задача состоит в том,что нужно введенное число (unsigned char) перевести в двоичную, а затем проверить биты полученного числа (тоесть, что находится в ячейке 0 или 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
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
int c=0;
void dvoich(int x1)
{
    int i,b;
    for(i=0;x1>0;i++)
    {
        b=x1%2;
        x1=(x1-b)/2;
        c+=b*pow(10.,i);
    }
    printf("\n\n Dvoichnoe:%d ",c);
}
void main()
 
{
    unsigned char a;
    printf("\n Vvedite desiatichnoe chislo:");
    scanf("\n%c",&a);
    dvoich(a);
}
программа переводит число из 10 в 2 СС, а как дальше?Нужно воспользоваться побитовым сдвигом?Правильно ли будет записать с=с>>7, а дальше проверять переменную с?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
14.02.2013, 20:56     Операция побитового сдвига #2
Цитата Сообщение от marina11 Посмотреть сообщение
а затем проверить биты полученного числа (тоесть, что находится в ячейке 0 или 1)
Ничего не понятно.
marina11
1 / 1 / 0
Регистрация: 15.11.2012
Сообщений: 84
14.02.2013, 20:58  [ТС]     Операция побитового сдвига #3
Цитата Сообщение от iama Посмотреть сообщение
Ничего не понятно.
Допустим я ввела число 123, программа перевела в двоичную, вывела на экран 1111011, мне нужно задать условие, если в 7 ячейке 0, выводить надпись "ноль",а если 1, то выводить надпись "единица".Как это сделать?
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
14.02.2013, 21:06     Операция побитового сдвига #4
Поразрядно запишите двоичную запись числа в массив и выдавайте ответ в зависимости от элемента массива, например.

С помощью побитовых операторов можно еще:
C++
1
cout << (n & (1 << 7) ? "1" : "0");
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
14.02.2013, 21:31     Операция побитового сдвига #5
Цитата Сообщение от marina11 Посмотреть сообщение
Допустим я ввела число 123, программа перевела в двоичную, вывела на экран 1111011, мне нужно задать условие, если в 7 ячейке 0, выводить надпись "ноль",а если 1, то выводить надпись "единица".Как это сделать?
У вас программа не правильно считает.
Yandex
Объявления
14.02.2013, 21:31     Операция побитового сдвига
Ответ Создать тему
Опции темы

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