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

Массивы. Работа с побитовыми операциями - C++

Восстановить пароль Регистрация
 
Mi0oZ
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 11
26.01.2011, 13:34     Массивы. Работа с побитовыми операциями #1
Помогите с программированием,пожалуйста!!!!!!!!!!!!
Дан массив из беззнаковых чисел. Коды четных элементов массива сдвинуть на 2 разряда влево, а в нечетных элементах установить в 1 биты младшего по-лубайта. Элементы полученного массива представить в 16-ричном, 10-ичном и двоичном формате
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.01.2011, 19:21     Массивы. Работа с побитовыми операциями #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
#include <iostream>
#include <iomanip>
 
char* DecBin(short chislo)
{
    int i, j, size = 16;
    char* bin = new char[size];
    for (i = size - 1; i >= 0; --i)
        bin[i] = ((chislo >> i) & 1);
    i = size;
    while (!bin[--i]);
    int len = i + 1;
    char* res = new char[len];
    for (j = 0; j < len; ++j)
        res[j] = bin[len - j - 1] + '0';
    return res;
}
 
int main()
{
    int i, n = 0;
    std::cout << "Input array size:\n> ";
    std::cin >> n;
    unsigned short* arr = new unsigned short[n];
    std::cout << "Input array:\n";
    for (i = 0; i < n; ++i)
        std::cin >> arr[i];
    for (i = 0; i < n; ++i)
        if (arr[i] & 1)
            arr[i] |= 15;
        else
            arr[i] <<= 2;
    std::cout << "\nChanged array:\n";
 
    for (i = 0; i < n; ++i)
        std::cout << DecBin(arr[i]) << "        " << std::setbase(10) << arr[i]
                  << "        " << std::setbase(16) << arr[i] << '\t'
                  << std::endl;
    return 0;
}
Mi0oZ
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 11
26.01.2011, 21:18  [ТС]     Массивы. Работа с побитовыми операциями #3
std::cin >> n;
помогите исправить ошибки хотя бі в єтой строке
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
26.01.2011, 21:28     Массивы. Работа с побитовыми операциями #4
Цитата Сообщение от Mi0oZ Посмотреть сообщение
std::cin >> n;
помогите исправить ошибки хотя бі в єтой строке
тут ошибок нету )
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.01.2011, 22:50     Массивы. Работа с побитовыми операциями #5
Цитата Сообщение от Mi0oZ Посмотреть сообщение
std::cin >> n;
помогите исправить ошибки хотя бі в єтой строке
Какая IDE?
Mi0oZ
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 11
26.01.2011, 22:55  [ТС]     Массивы. Работа с побитовыми операциями #6
Borland C++
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
26.01.2011, 23:25     Массивы. Работа с побитовыми операциями #7
Mi0oZ, версий Borland C++ много, конкретнее какая? 3.1?
Mi0oZ
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 11
27.01.2011, 08:51  [ТС]     Массивы. Работа с побитовыми операциями #8
да 3 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2011, 11:33     Массивы. Работа с побитовыми операциями
Еще ссылки по теме:

работа с побитовыми операциями. C++
Работа с битовыми операциями C++
Работа с битовыми операциями C++

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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
27.01.2011, 11:33     Массивы. Работа с побитовыми операциями #9
Как-то так, не проверял
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
#include <iostream.h>
#include <iomanip.h>
 
char* DecBin(short chislo)
{
    int i, j, size = 16;
    char* bin = new char[size];
    for (i = size - 1; i >= 0; --i)
        bin[i] = ((chislo >> i) & 1);
    i = size;
    while (!bin[--i]);
    int len = i + 1;
    char* res = new char[len];
    for (j = 0; j < len; ++j)
        res[j] = bin[len - j - 1] + '0';                       
    return res;
}
 
int main()
{
    int i, n = 0;
    cout << "Input array size:\n> ";
    cin >> n;
    unsigned short* arr = new unsigned short[n];
    cout << "Input array:\n";
    for (i = 0; i < n; ++i)
        cin >> arr[i];
    for (i = 0; i < n; ++i)
        if (arr[i] & 1)
            arr[i] |= 15;
        else
            arr[i] <<= 2;
    cout << "\nChanged array:\n";
 
    for (i = 0; i < n; ++i)
        cout << DecBin(arr[i]) << "        " << setbase(10) << arr[i]
             << "        " << setbase(16) << arr[i] << '\t' << endl;
    return 0;
}
Yandex
Объявления
27.01.2011, 11:33     Массивы. Работа с побитовыми операциями
Ответ Создать тему
Опции темы

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