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

Изменение данных при последовательных обратных друг другу сдвигах

28.11.2014, 15:15. Показов 1190. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
сдвигаю файл по байту сохраняю , затем заново беру файл сдвигаю обратно , но файл не получается в исходном положени.

C#
1
2
3
4
5
6
7
8
9
10
11
 do
            {
                i = fs.ReadByte();
                if (i != -1)
                {
                    i = i >> 1;
                    fs2.WriteByte(Convert.ToByte(i));
 
                }
            }
            while (i != -1);

обратно
C#
1
2
3
4
5
6
7
8
9
10
11
 do
            {
                i = fs.ReadByte();
                if (i != -1)
                {
                    i = i << 1;
                    fs2.WriteByte(Convert.ToByte(i));
 
                }
            }
            while (i != -1);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2014, 15:15
Ответы с готовыми решениями:

Привязка окон друг к другу при перетаскивании
Доброго времени суток! Огромная просьба подсказать, как в Windows Forms реализовать возможность...

Сделать так, чтобы кнопки при движении уступали дорогу друг другу
Как сделать чтобы два буттона(кнопки) идя навстречу друг другу уступали дорогу (надо использовать...

Фон меняется при соприкосновении спрайтов(на всегда, а не на время, пока спрайты прикасаются друг к другу) PyGame
Привет Всем! Вопрос довольно сложный, надеюсь, кто-нибудь сможет ответить на него. Мне нужно, чтоб...

Проверить истинность: "Среди трех данных целых чисел есть хотя бы одна пара равных друг другу"
Здравствуйте, нуждаюсь в вашей помощи ув. программисты. Нужно разработать программу, которая...

4
813 / 421 / 169
Регистрация: 08.02.2013
Сообщений: 711
28.11.2014, 15:22 2
ilgizch, операция сдвига не циклическая, Вы теряете младший бит при первом проходе.
1
2151 / 1288 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
28.11.2014, 15:24 3
Лучший ответ Сообщение было отмечено ilgizch как решение

Решение

...как и старший, делайте циклический сдвиг и будет счастье.
0
813 / 421 / 169
Регистрация: 08.02.2013
Сообщений: 711
28.11.2014, 15:31 4
Лучший ответ Сообщение было отмечено ilgizch как решение

Решение

Metall_Version, ну старший не теряется, в силу того, что сначала идет сдвиг вправо. В общем случае, такая штука:
C#
1
i = i << 1;
может дать -1 и цикл завершится раньше (в примере такого не будет). Плюс ко всему это не "побайтовый сдвиг" а побитовый и не всего файла а каждого байта в нем (они не эквивалентны т.к. теряются биты)
1
2151 / 1288 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
28.11.2014, 15:44 5
Цитата Сообщение от rRczZZ Посмотреть сообщение
ну старший не теряется
естественно не вникал в направление сдвига
0
28.11.2014, 15:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2014, 15:44
Помогаю со студенческими работами здесь

Подойдут ли к друг другу комплектующие?
Здравствуйте, пытаюсь апгрейдить свой 8-летний ПК, вот подобрал некоторые комплектующие: ОЗУ:...

Все ли подходит друг другу?
Процессор Intel Core i5-6600K Tray Охлаждения DEEP COOL GAMMAXX S40 Материнская плата ASUS Z170...

Подходят комплектующие к друг другу?
Подходят комплектующие к друг другу? И нормальный ли это комп? ...

Равны ли строки друг другу
Пользователь вводит две строки если они равны друг другу значит вывести YES иначе NO

Все ли подходит друг к другу?
Всем привет, собственно, сабж Прошу оценить совместимость компонентов, в первую очередь на...

Привязка 2 окон друг к другу
Всем привет, вот задался таким вопросом, есть основное диалоговое окно, есть немодальное окно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru