Помощь - Поиск - Пользователи - Календарь
Полная версия: N-ный бит
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
suriv
есть число. (integer) проверить установлен ли в нем N-ый бит
Строки не использовать
ничего в голову не лезет помогите кто-нить,хотя бы на мыслю наведите
volvo

var n: integer;
...
if (n and (1 shl 5)) = (1 shl 5) then { 5-ый бит установлен }
else { не установлен }

suriv
Спасибо... ;)
тока насчет shr/shl читал- непонял может кто-нить объяснит или ссылку даст ?
volvo
x := x SHL n;
x := x SHR n;

SHL - сдвигает битовое представление переменной X на N бит влево (SHR соответственно - вправо)... При этом те биты, которые "уходят" за пределы разрядности числа теряются, а освободившееся место с другой стороны заполняется 0 (всегда при сдвиге влево и иногда - при сдвиге вправо) или 1 (только при сдвиге вправо отрицательных значений одного из типов: ShortInt, Integer или LongInt) smile.gif
suriv
thx :p4:
FreeMan
Ну если понял, то сделай из числа 1 (a:=1) число 22. можно использовать сдвиги, сложение (переменных) и ещё одну переменную (b:=1).

М
Freeman, ты чего ? Теме то уже 7 месяцев rolleyes.gif
klem4

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.