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

Почему мой код не правильный? (показать биты, составляющие байт)

04.11.2017, 16:29. Показов 909. Ответов 2

Студворк — интернет-сервис помощи студентам
//Почему мои строки не правильно показывают биты, составляющие байт?

//данная задача взята из книги Шилда С# 4.0 Полное руководство. 110 с.

// Показать биты, составляющие байт.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
    class ShowBits
    {
    static void Main()
    {
        int t;
        byte val;
        val = 123;
        for (t = 128; t > 0; t = t / 2)
        {
            if ((val & t) != 0) Console.Write(" 1 "); //строка из книги
            if ((val & t) == 0) Console.Write(" 0 "); //строка из книги
                                                      //Выполнение этой программы дает следующий результат.
                                                      // 0 1 1 1 1 0 1 1
 
            //if ((val & t) == 1) Console.Write(" 1 "); // это моя строка
            //if ((val & t) == 0) Console.Write(" 0 "); // это моя строка
            //Теперь если заменить строки из книги моими строками, 
            //то получиться такой результат: 0 0 1   ПОЧЕМУ?
        }    
        
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2017, 16:29
Ответы с готовыми решениями:

Объясните, как показываются биты, составляющие байт?
Здравствуйте, изучаю C# по Шилдту, дошёл до работы с битами. Более-менее понял как считаются числа в двоичной системе, понял как...

Дан массив из 10 байт. Посчитать количество байт, в которых сброшены 6 и 4 биты
Дан массив из 10 байт. Посчитать количество байт,в которых сброшены 6 и 4 биты. Массив байтов размещается начиная с DS:0000h. Ответ должен...

Определение в массиве из 15 байт количества байт, в которых сброшены 6 и 4 биты
Помогите пожалуйста разработать программу на языке ассемблера, определяющую в массиве из 15 байт количество байт, в которых сброшены 6 и 4...

2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
04.11.2017, 16:35
Цитата Сообщение от vasya31ru Посмотреть сообщение
ПОЧЕМУ?
Потому что t — это значение, у которого установлен ровно один бит.
Если сделать побитовое И с этим значением, то результат будет равняться единице тогда и только тогда, когда val == 1.

Попробуйте взять листок и карандаш и расписать значение всех переменных в двоичном виде на каждой итерации цикла. Очень быстро поймете в чем ошибка.
1
0 / 0 / 0
Регистрация: 04.11.2017
Сообщений: 2
04.11.2017, 17:47  [ТС]
colorotun, СПАСИБО. Как только по твоему совету расписал на листочке, сразу понял свою ошибку. Я просто забыл, что это же двоичное число. Я понимал что число "t" имеет в каждой операции установленный в единицу всего один бит и это меня запутало. я все время думал, что если например пятый бит у числа "val" установлен в единицу то и ответ будет единица. А это же получиться 10000 что в десятичной системе равно 16 . А 16 уж точно не равно 1. Спасибо тебе еще раз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.11.2017, 17:47
Помогаю со студенческими работами здесь

Правильный ли код и почему не работает?
$(document).ready(function(){ var URL = "gbook.php"; var speed = 3000; function reload() { document.location = URL; ...

Почему мой код не работает?
следующий код: <%Set oShell = CreateObject("WScript.Shell")%> прокатывает без проблем а <script language='VBScript'> ...

Проверьте код, почему то не работает, вроде правильный
procedure TForm1.Button1Click(Sender: TObject); var a:array of integer; n,i,s,code:integer; begin val(Edit1.text,n,code); ...

На мой код почему то видает ошибку
У меня возникла проблема после 2-х дней обучения в пайтоне на мой код почему то видает ошибку #сам код N = None def...

Почему мой код очищает файл
Доброго времени суток. Я только недавно начал писать на php и столкнулся со следующей проблемой: Я не могу понять, почему этот ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru