Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3
1

Установить 0 в 5-м бите всех эл массива целых чисел с четным индексом и 1 - в 4-м бите всех нечетных эл массива.

12.04.2010, 15:45. Просмотров 839. Ответов 6
Метки нет (Все метки)

Установить 0 в 5-м бите всех элементов массива целых чисел с четным индексом и 1 - в 4-м бите всех нечетных элементов массива. Определить сумму элементов полученного массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2010, 15:45
Ответы с готовыми решениями:

Установить 0 в пятом бите всех элементов массива целых чисел с четным индексом
Добрый вечер. Есть задание: Установить 0 в пятом бите всех элементов массива целых чисел с четным...

Записать в каждый элемент массива с четным индексом сумму всех предыдущих элементов исходного массива
Дан одномерный массив целых чисел А. Создать новый массив В, занеся в каждый элемент с четным...

Подсчитать разницу между суммой всех чётных и суммой всех нечётных элементов массива целых чисел
подсчитать разницу между суммой всех чётных и суммой всех нечётных элементов массива целых чисел...

Найти минимальный элемент массива с четным индексом и среднее арифметическое всех положительных элементов
Заполнить массив значениями функции y=7sin(0,4x) для всех значений x от –10 до 10, взятых с шагом...

6
48 / 47 / 25
Регистрация: 03.04.2010
Сообщений: 100
12.04.2010, 16:05 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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main()
{
    int a[100], s(0);
    for (int i = 0; i < 100; i++)
    {
        a[i] = rand()%100; //заполнение массива
        if (i%2)
        {
            a[i] = a[i]&223;//если четный индекс - ставим 0 в 5 бите
        }
        else
        {
            a[i] = a[i]|16;//если нечетный - 1 в 4 бите
        }
        printf("%d\n", a[i]);
        s+=a[i];
    }
           printf("%d\n", s);
    return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10857 / 6733 / 1617
Регистрация: 25.07.2009
Сообщений: 12,472
12.04.2010, 16:18 3
Цитата Сообщение от gh05t Посмотреть сообщение
a[i] = a[i]&223;//если четный индекс - ставим 0 в 5 бите
так бит не обнулится. если была единица, то после операции & единица и оставится. для обнуления ^ используется. и кстати - откуда число 223?
0
48 / 47 / 25
Регистрация: 03.04.2010
Сообщений: 100
12.04.2010, 16:26 4
233d = 11011111b
Пятый бит равен 0, следовательно при операции & на его месте всегда будет 0, остальные биты - 1, следовательно на их местах будет то, что изначально содержится в a[i].
Аналогично с оператором или
16d = 10000b
Четвертый бит равен 1, значит при "или" он всегда таким и будет, остальные сохранят свои предыдущие значения.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10857 / 6733 / 1617
Регистрация: 25.07.2009
Сообщений: 12,472
12.04.2010, 16:36 5
Цитата Сообщение от gh05t Посмотреть сообщение
233d = 11011111b
так только для типа char сработает, для int будет обнулять всё начиная с восьмого бита, а это не правильно. лучше всё-таки
C
1
a[i] ^= 0x20;
Добавлено через 1 минуту
Цитата Сообщение от gh05t Посмотреть сообщение
Аналогично с оператором или
16d = 10000b
Четвертый бит равен 1, значит при "или" он всегда таким и будет, остальные сохранят свои предыдущие значения.
вот с этим как-раз полностью согласен
0
48 / 47 / 25
Регистрация: 03.04.2010
Сообщений: 100
12.04.2010, 16:37 6
тогда для int - a[i] = a[i]&274877906911
0
Эксперт С++
5017 / 2596 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
12.04.2010, 17:11 7
Цитата Сообщение от gh05t Посмотреть сообщение
тогда для int - a[i] = a[i]&274877906911

Не по теме:

умоляю вас писать такие числа в 16-ричной системе счисления :)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2010, 17:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дан двухмерный массив целых чисел. Вычислить сумму всех положительных нечетных элементов массива
Дан двухмерный массив целых чисел. Вычислить сумму всех положительных нечетных элементов массива.

Подсчет суммы элементов массива после установки 1 в четвертом бите каждого элемента. Проблемы с выводом в консоль
Форумчане! Помогите! Необходимо написать код, который позволяет установить &quot;1&quot; в четвертых битах...

Посчитать сумму элементов с четным индексом из массива вещественных чисел
Задачу нужно решить тремя способами(и оформить в виде ассемблерной вставки в си или паскаль...

Вычислить сумму всех нечётных чисел массива
от 1 до N,вычислить сумму всех нечётных чисел....

Найти сумму всех нечетных чисел массива
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ НА АССЕМБЛЕРЕ,ЭЛЕКТРОНИКА-580, ПОЖАЛУЙСТА!!((( ;) Дан массив чисел:...

Массивы: вывести сумму всех четных/всех нечетных элементов массива
Задание: Пользователь вводит 5 чисел в массив из 5 элементов. Вывести сумму всех четных чисел. А...


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

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

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