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

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

Войти
Регистрация
Восстановить пароль
 
Filipchik Elena
0 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 14
#1

Обработка бита - C++

25.03.2010, 20:32. Просмотров 764. Ответов 1
Метки нет (Все метки)

Название Размерность Тип
N 16 вход
M 4 вх
P 2 вх
O 16 выход

На вход N подается BCD число. Необходимо число стоящее в P-ой позиции BCD числа заменить на данное число M. На выходе О - полученное число.

Примечание:
В BCD-формате числа каждая цифра десятичного числа кодируется 1 полубайтом.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2010, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка бита (C++):

Обработка бита - C++
На входе даны два 8-х разарядных числа IN_0, IN_1. Если на пятом месте в IN_0 стоит 0, то поменять знак числа IN_1,(и вывести...

Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа - C++
Дано число. Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа. код частично...

Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита - C++
Ввести целое A. Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с ервогоп бита. B=1A05h.

Копирование бита - C++
Надо упростить и оптимизировать строку *p=((*p&0x80)>>8)|(*p&0x80);. Задача - скопировать (не переместить) старший бит байта в младший бит...

Проверка бита - C++
Всем привет. Хотел спросить знающих людей, как можно проверить бит в байте. То есть, допустим, есть unsigned char "01010101". Какими...

Установка бита - C++
Дано целое число A и целое число k. Выведите число, которое получается из числа A установкой значения k-го бита равному 1.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
25.03.2010, 22:41 #2
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
36
37
38
39
40
41
42
43
44
#include <conio.h>
#include <iostream.h>
int main()
{
    int BcdValue;
        int i,j;
        int BcdArray[4];
    cout << "Vvedite BCD chislo (0 - 9999) : ";
        cin>>BcdValue;
        int ValueForChanging;
        int ByteIndex;
        cout<<"Vvedite chislo dlija zameny (0 - 9) :";
        cin>>ValueForChanging;
        cout<<"Vvedite index tetrady dlja zameny (0 - 3) :";
        cin>>ByteIndex;
        BcdArray[0]=BcdValue/1000;
        BcdArray[1]=(BcdValue-BcdArray[0]*1000)/100;
        BcdArray[2]=(BcdValue-BcdArray[0]*1000-BcdArray[1]*100)/10;
        BcdArray[3]=(BcdValue-BcdArray[0]*1000-BcdArray[1]*100-BcdArray[2]*10);
        cout<<"BCD chislo "<<BcdValue<<" v dvoichnom vide:\n";
        for(int i=0;i<4;i++)
        {
            for(j=3;j>=0;j--)
            {
                cout<<((BcdArray[i]>>j)&0x01);
            }
                cout<<" ";
        }
        BcdArray[ByteIndex]=ValueForChanging;
        cout<<"\nBCD Chislo na vihode v dvoichnom vide: \n";
        for(i=0;i<4;i++)
        {
            for(j=3;j>=0;j--)
            {
                cout<<((BcdArray[i]>>j)&0x01);
            }
                cout<<" ";
        }
        cout<<"\nBCD Chislo na vihode v desjatichnom vide: \n";
        for(i=0;i<4;i++)
            cout<<BcdArray[i];
        getch();
    return 0;
}
Единственное, что я не совсем понял:
У вас на входе 16-бит. Это 4 тетрады. Каждая для описания одного десятичного числа от 0 до 9
Какую-то тетраду надо заменить на число М(4 бита или 1 тетрада).
Но в качестве позиции Р вы на входе хотите вводить число до 2. Но ведь у Вас 4 тетрады! По этому, если Р будет меньше 4-ех, то вы сможете изменить лишь 2 тетрады - 8 бит. А у вас их 16
По этому, я сделал так, что Р имеет диапазон 0-3.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2010, 22:41
Привет! Вот еще темы с ответами:

Замена бита единицей - C++
Здравствуйте, помогите пожалуйста решить задачку. Нужно: ввести последовательность из 8 целых чисел. В каждом втором числе заменить (...

Проверка бита на единицу - C++
Подскажите, корректно ли такое сравнение if((paramData &amp;= 0x80) == 1) // проверка на наличие единицы(1) в 8-ом бите данного байта длины...

Замена бита единицей - C++
Как реализовать данное условие? Ввести последовательность из 8 целых чисел. В каждом втором числе заменить ( i-1)-й бит единицей, где...

Как проверить 2 бита? - C++
BorlandC++3.0 MS-DOS, надо проверить 5й бит равен 1, а 6й бит = 0, не получается их проверить в одном IF, если проверяю по отдельности, то...


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

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

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