Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 20.04.2013
Сообщений: 283

Реализация собственного класса битовых массивов

20.04.2013, 12:50. Показов 1789. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно на c# реализовать собственный класс для работы с битовыми массивами.должны быть хотя бы все 4 логические функции (not,and,or,xor). C not немного разобрался, а вот как для других учесть возможную разницу размеров двух массивов- не пойму. И Подскажите еще, как сделать так, чтоб not возвращал новый массив , а не менял старый. Вот мой код
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
45
46
47
48
49
50
51
52
 class Bit
    {
        
        public Bit(int[] data)
        { 
                
                    this.data = data;
 
                    for (int i = 0; i < data.Length; i++)
                    {
                        if ((data[i] != 0) & (data[i] != 1))
                        {
                            data[i] = 0;
                        }
                    }
        }
 
         
        
        public static int[] not(Bit a)
        {
            {
                for (int j = 0; j < a.data.Length;j++ )
                {
                    if (a.data[j] == 0)
                    {
                        a.data[j] = 1;
                    }
                    else
                    {
                        a.data[j] = 0;
                    }
                }
           }
       return a.data;
        }
      
        int[] data;
 
        public int[] Data
        {
            get
            {
                return data;
            }
        }
    }
    
 
  
    
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2013, 12:50
Ответы с готовыми решениями:

Реализация собственного класса вектора
Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и переменную состояния. Определить...

Запись в собственного класса бинарный файл собственного
есть Свой тип данных дробь. Надо реализовать запись и загрузку в\из бинарного файла. #ifndef RATION_H #define RATION_H #include...

Реализация битовых операций
IntA=10; A=A&amp;0F; A=A|03; A=A&lt;&lt;1 Чему будет равно A?

2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.04.2013, 13:00
Цитата Сообщение от Dimitrii Посмотреть сообщение
как для других учесть возможную разницу размеров двух массивов- не пойму.
Сначала проводите нужную операцию для общих индексов, а потом устанавливайте оставшиеся биты в большем массиве.

Цитата Сообщение от Dimitrii Посмотреть сообщение
как сделать так, чтоб not возвращал новый массив , а не менял старый.
C#
1
int[] b = new int[a.Data.Length];
После чего заменить во всем методе "a.Data" на "b".

Замечание.
У вас очень много памяти тратится зря: для представления одного бита вы используете 32 бита. Один используется, 31 валяется без дела.
1
432 / 433 / 93
Регистрация: 16.07.2012
Сообщений: 886
20.04.2013, 13:30
Например, так:
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
public class Bits
{
    private readonly List<bool> data;
 
    public Bits(IEnumerable<bool> data)
    {
        this.data = new List<bool>(data);
    }
 
    // Перегрузка оператора "Не"
    public static Bits operator !(Bits bits)
    {
        var data = new bool[bits.data.Count];
        for (var i = 0; i < bits.data.Count; i++)
        {
            data[i] = !bits.data[i];
        }
        return new Bits(data);
    }
 
    // Перегрузка оператора "Или"
    public static Bits operator |(Bits bits1, Bits bits2)
    {
        var count = Math.Min(bits1.data.Count, bits2.data.Count);
        var data = new bool[count];
        for (var i = 0; i < count; i++)
        {
            data[i] = bits1.data[i] | bits2.data[i];
        }
        return new Bits(data);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2013, 13:30
Помогаю со студенческими работами здесь

Реализация битовых операций в Си++
По теме: Реализация битовых операций в Си++. Даны два неравных числа: n и m, не превосходящие 31. Вычислите 2^n+2^m.

Создание битовых массивов произвольной длинны
Всем привет!Нужна помощь! Мне необходимо в Delphi создать и записать в файл последовательность бит произвольной длинны.(например создать...

Реализация собственного события
Всем привет. Реализую собственное событие для компонента. И застрял с его условием вызова. Помогите кто знает.

Реализация собственного thread'a
Здравствуйте, задача следующая: Нужно написать функцию int thread_create(void (*fp)()), которая реализует thread и в качестве стека для...

Реализация собственного меню
Допустим, мы сделали меню где есть 3 кнопки. Допустим, первая - запуск, вторая - настройки, третья - выход. Как реализовывать переход к...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru