Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.10.2012, 12:55
митрийG митрийG вне форума
Прохожий
 
Регистрация: 27.10.2012
Сообщения: 12
Репутация: 10
По умолчанию Объясните бестолковому (С++)

В программе на С++ есть строчка:
Код:
int t = (0x01 << axis) & 0x0f;// axis=x:0,y:1,z:2,u:3
Насколько я понимаю производится сдвиг 1 на 0,1,2 или 3 бита
но вот зачем (& 0x0f) - насколько я понимаю логическое И с 1111 результат не изменит
Это что -правила хорошего тона или на что то может влиять???
Ответить с цитированием
  #2  
Старый 29.10.2012, 13:02
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Видимо на случай если axis больше 3. Сделано для того чтобы результат никогда не получился больше чем 0x0f.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
митрийG (29.10.2012)
  #3  
Старый 29.10.2012, 13:02
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от митрийG
В программе на С++ есть строчка:
Код:
int t = (0x01 << axis) & 0x0f;// axis=x:0,y:1,z:2,u:3
Насколько я понимаю производится сдвиг 1 на 0,1,2 или 3 бита
Призводится сдвиг и выделяется последний ниббл.
Цитата:
Сообщение от митрийG
но вот зачем (& 0x0f) - насколько я понимаю логическое И с 1111 результат не изменит
Результат не изменит логическое И с числом 15, а не с 1111
Цитата:
Сообщение от митрийG
Это что -правила хорошего тона или на что то может влиять???
При работе с битами удобнее использовать 16-ричную систему счисления вместо 10-тичной.
Ответить с цитированием
  #4  
Старый 29.10.2012, 13:23
митрийG митрийG вне форума
Прохожий
 
Регистрация: 27.10.2012
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Призводится сдвиг и выделяется последний ниббл.
Результат не изменит логическое И с числом 15, а не с 1111При работе с битами удобнее использовать 16-ричную систему счисления вместо 10-тичной.
1111 -это в двоичной
при работе может и удобнее, но думается логика лучше в 2х (лично для метя).
есть 16 регистров (по 16 бит) -в инструкции мнемоника каждого бита в таблицах на английском, а расшифровка значений этих же бит и с 16х представлением на корейском (эти кракозябелы я вааще не знаю)
Спасибо за ответ.
Ответить с цитированием
  #5  
Старый 29.10.2012, 13:48
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от митрийG
1111 -это в двоичной
при работе может и удобнее, но думается логика лучше в 2х (лично для метя).
В двоичной удобнее для небольших чисел, а при больших числа становятся громоздкие и трудновосприимчивые.
Цитата:
Сообщение от митрийG
есть 16 регистров (по 16 бит) -в инструкции мнемоника каждого бита в таблицах на английском, а расшифровка значений этих же бит и с 16х представлением на корейском (эти кракозябелы я вааще не знаю)
Ну корейский я тоже не знаю
В общем, то я и Си++ знаю постольку поскольку, к примеру не помню как в сях двоичные числа записываются.
Ответить с цитированием
  #6  
Старый 29.10.2012, 15:01
митрийG митрийG вне форума
Прохожий
 
Регистрация: 27.10.2012
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
В двоичной удобнее для небольших чисел, а при больших числа становятся громоздкие и трудновосприимчивые.
Ну корейский я тоже не знаю
В общем, то я и Си++ знаю постольку поскольку, к примеру не помню как в сях двоичные числа записываются.
Си я так же знаю (начальный курс в институте -с++ тогда еще не было)
но на сколько помню обозначения 2х в сях нет.
А логику 2х мне в институте прочно вбили, тем более чтоя ближе к схемотехнике чем к программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025