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

Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Mr.Zavhozz
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 2
17.06.2012, 13:08     Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число. #1
В массиве Х[0..9] чисел типа short обработать каждое число
согласно условиям:
Циклически сдвинуть на 4 разряда вправо четное число. Определить сумму отрицательных чисел до сдвига и после сдвига.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2012, 13:08     Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число.
Посмотрите здесь:

Сдвинуть элементы массива циклически на n позиций вправо. C++
Сдвинуть массив циклически на К элементов вправо C++
Сдвинуть в двухмерном массиве все ряды циклически вправо... C++
Задан массив из k чисел. Сдвинуть элементы массива циклически на n позиций вправо C++
C++ Сдвинуть циклически на К слов вправо
Одномерный массив, Сдвинуть элементы массива циклически на n позиций вправо C++
Сдвинуть элементы массива вправо циклически на 1 шаг C++
C++ Элементы одномерного массива из n элементов циклически сдвинуть на к мест вправо

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
17.06.2012, 14:39     Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число. #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
#include <iostream>
#include <vector>
#include <numeric>
 
using namespace std;
 
int main()
{
    vector<short> negVals;
    short vals[] = {1, -4, -26, 19, 89, -91, 36, -784, 193, 186, 480};
 
    int size = sizeof vals / sizeof vals[0];
 
    for (int i=0; i<size; i++)
        if (vals[i] % 2 == 0)
            negVals.push_back(vals[i]);
 
    for (size_t i=0; i<negVals.size(); i++)
        cout << negVals.at(i) << " ";
    cout << endl;
 
    for (int i=0; i<size; i++)
        if (vals[i] % 2 == 0)
        {
            vals[i] = (vals[i] >> 4);
            negVals.push_back(vals[i]);
        }
 
    for (size_t i=0; i<negVals.size(); i++)
        cout << negVals.at(i) << " ";
    cout << endl;
 
    cout << "Sum = " << accumulate(negVals.begin(), negVals.end(), 0) << endl;
 
}
Rikkit
61 / 58 / 4
Регистрация: 15.06.2012
Сообщений: 149
17.06.2012, 14:39     Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число. #3
C++
1
2
3
4
5
6
7
int sum1=0, sum2=0;
for(int i=0; i<10; i+)
{
  if(x[i]<0) sum1+=x[i];
  if(i%2 == 0) x[i] >>= 4;
  if(x[i]<0) sum2+=x[i];
}
А далее вывести sum1 и sum2
Yandex
Объявления
17.06.2012, 14:39     Биты, байты. Циклически сдвинуть на 4 разряда вправо четное число.
Ответ Создать тему
Опции темы

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