Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/91: Рейтинг темы: голосов - 91, средняя оценка - 4.59
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449

Побитная инверсия

04.07.2012, 13:48. Показов 16985. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

Есть вопросик, но с начало расскажу в чем проблемка )

Есть строка, вот такая: 10101010 Как инвертировать? Чтобы было так 01010101

Чуть подробнее...

Записываю:
C#
1
2
                byte be = Convert.ToByte(r1 + r2 + r3 + r4 + r5 + r6 + r7 + r8, 2);
                byte[] bytes = { be };
В каждой r1-r8 записана 1 или 0 типа String

Необходимо инвертировать... там где была 1 стал 0

Как это можно осуществить ?

Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2012, 13:48
Ответы с готовыми решениями:

Инверсия диапазона
Добрый день. Задача вроде не сложная, но что-то я, похоже, немного туплю =) Суть такова: Есть конечный набор некоторых...

Инверсия int
Может заголовок немного не так объяснять то что мне нужно сделать. Короче! foreach (var state in data) { ...

Инверсия массива
Объясните пожалуйста, какой из этих вариантов более рациональный , и почему? второй сам придумал, а первый мне показался более сложным...

28
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
05.07.2012, 00:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от kolorotur Посмотреть сообщение
А что не так в шарпе с возней с битами?
шарп полностью объектный язык, и работа с битами реализована не для всех value типов, что иногда может порождать неоднозначную ситуацию. Это не есть хорошо.
В чистых сях которые без плюсов (да и на С++ тоже скорее всего так) переменная - это указатель на несколько байт в памяти применив к которым битовые операторы мы будем уверены, что именно подвергнется преобразованию. Компилятор не спрячет от нас некие шаманства и колдунства.
Мнение сугубо личное хоть в шарпе работа с битами вполне на уровне, лично я предпочел бы сделать сишную библиотеку, время и сложность возрастут незначительно (синтаксис один-же), в замен получим ништячки в виде большей производительности.

Цитата Сообщение от Alex Sabaka Посмотреть сообщение
ЩИТО? Это всеравно, что сказать: "сковородка не лучшее приспособление для жарки яиц, поду-ка я на костре пожарю яйца"
Забавно.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.07.2012, 01:04
freeba, вот и я о том же, в результате схожих операций получаем в памяти одно и то же значение: 11111111, но в одном случае трактуется как 255байт, в другом как -1инт. А самое обидное, что одно к другому привести нельзя... В дельфи я бы просто сделал в крайнем случае указатель на байт и скормил бы ему указатель на этот участок памяти, пусть даже он был бы обозначен как инт, и он бы мне как миленький бы выдал 255, а шарп пишет "невозможно преобразовать, неверное значение параметра".
0
101 / 101 / 12
Регистрация: 21.11.2011
Сообщений: 169
05.07.2012, 07:25
Цитата Сообщение от kolorotur Посмотреть сообщение
Это-то понятно, но примеры выше вроде как с интом были, а не с чем-либо другим.
Примеры выше проблемы применения побитовых операций обсуждают. Int там появляется опосредованно.

Цитата Сообщение от Psilon Посмотреть сообщение
.... как миленький бы выдал 255, а шарп пишет "невозможно преобразовать, неверное значение параметра".
Все возможно
C#
1
2
3
4
5
byte be = Convert.ToByte(0);
Console.WriteLine("{0} {1}", be, be.GetType());                                               // 0 System.Byte
Console.WriteLine("{0} {1}", ((byte)(~be)), ((byte)(~be)).GetType());                         // 255 System.Byte
Console.WriteLine("{0} {1}", ((byte)(be ^ 0xFF)), ((byte)(be ^ 0xFF)).GetType());             // 255 System.Byte
Console.WriteLine("{0} {1}", ((byte)(be ^ 0xFFFFFFFF)), ((byte)(be ^ 0xFFFFFFFF)).GetType()); // 255 System.Byte
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
05.07.2012, 10:37  [ТС]
Цитата Сообщение от hiddentool Посмотреть сообщение
Все возможно
А чтобы в двоичной ?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.07.2012, 10:47
freeba, спасибо за объяснение.
С тезисом о шаманствах и колдунствах согласен, но вот не могу полностью согласиться с альтернативой выносить методы с побитовыми операциями в отдельную неуправляемую сборку: это же придется ее потом подключать и использовать через PInvoke, тем самым "отрезая" часть приложения от управляемой среды.
Не слишком ли большая цена за обход шаманств и колдунств через использование кастов?

Цитата Сообщение от hiddentool Посмотреть сообщение
Примеры выше проблемы применения побитовых операций обсуждают. Int там появляется опосредованно.
Ну там на примере побитового НЕ обсуждали, где байт именно в инт переходит, потому как-то на автомате про инты и заговорил.
А так - вы правы конечно насчет второго операнда. Спасибо за дополнение.

Добавлено через 46 секунд
Цитата Сообщение от sasha0192 Посмотреть сообщение
А чтобы в двоичной ?
НЕ в двоичном представлении в .NET хранится ровно один числовой тип: decimal.
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
05.07.2012, 10:50  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
НЕ в двоичном представлении в .NET хранится ровно один числовой тип
Эм не как ? Если переводить ?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
05.07.2012, 10:55
Цитата Сообщение от sasha0192 Посмотреть сообщение
Если переводить?
Что и куда переводить?
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
05.07.2012, 11:21  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Что и куда переводить?
Из 10 -чной в 2-чную
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
05.07.2012, 13:51
Цитата Сообщение от kolorotur Посмотреть сообщение
Не слишком ли большая цена за обход шаманств и колдунств через использование кастов?
Возможно. Цена определяется необходимостью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2012, 13:51

Инверсия регистра
Из больших букв - маленькие Из маленьких - большие Пример: Привет, Андрей пРИВЕТ, аНДРЕЙ Инверсия регистра мне нужна

Инверсия строки
Из файла получаю строку как ее можно инвертировать с помощью побитовой инверсии? зарание Спасибо

Инверсия строки и сложение чисел
доброго всем времени суток. прошу помочь с обьяснением двух функций, как они работают private static int Sum(int a, int b) { ...

Фильтр для изображения. Инверсия
Будьте добры можете дописать программу на си шарп с использование, так как не нашел на другом языке фильтр код. А так в общем не успел...

Инверсия массива (исправить код)
Доброго времени суток, попытался инвертировать массив, без revers'а. Получилось следующее: using System; class LengthDemo { ...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru