Форум: "Потрепаться";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
ВнизНачинающим программистам. Этап 1 Найти похожие ветки
← →
al_ (2002-11-11 19:54) [80]
> Набережных С. (08.11.02 12:22)
Спасибки!!! А у меня еще есть один-два вопроса!
1. Как понять "Уметь проверить и выставить любой бит в любое значение"?
2. Пойдет ли книга, В.В.Фараонов "Delphi 6 - учебный курс" М.: 2001 г., для обучения?
← →
Юрий Зотов (2002-11-11 20:36) [81]1. Это значит: дано N-битное целое число и номер бита i (i < N).
a). Определить, в каком состоянии находится этот бит (0 или 1).
б). Выставить этот бит в состояние 0.
в). Выставить этот бит в состояние 1.
Не обязательно решать задачу в общем виде, достаточно решить ее на нескольких примерах (т.е., взяв конкретные значения N и i).
2. Конкретно эту книгу я не знаю, но в тех книгах В.В.Фаронова, которые я видел, большое внимание уделено самому языку Паскаль. Если и в этой книге так же, то это как раз то, что нужно.
← →
al_ (2002-11-12 00:20) [82]
> Юрий Зотов © (11.11.02 20:36)
:( Первый пункт не ясен. Я чего-то недопонимаю :(
← →
MBo (2002-11-12 06:24) [83]>al_
Пусть у нас имеется Integer число 17=$11=10001b
чтобы узнать, в каком состоянии находится 5-й справа бит (при общепринятой нумерации с нуля он называется 4-ым), нужно извлечь его, игнорируя остальные. Для этого производим такую логическую операцию, при которой остальные биты сбрасываются в 0, а нужный не меняется. Это будет логическое AND c 10000b.
10001b and 10000b = 10000b
а
10001b and 1000b =0
чтобы легко задать нужный бит маски, получаем ее путем сдвига влево числа 1 (у которого установлен только нулевой бит) на нужное число позиций. В результате:
if ( X and (1 shl 4) ) <>0 (в условии можно вместо неравенства и так: (...)=$10 )
then 4 бит установлен в 1
Про выставление бита сам попробуй
← →
AndrewVolkov (2002-11-24 00:56) [84]>не понял как работать с десячной дробью
Пpи переводе правильной десятичной дpоби в систему счисления с основанием q необходимо сначала саму дробь, а затем дробные части всех последующих произведений последовательно умножать на q, отделяя после каждого умножения целую часть пpоизведения. Число в новой системе счисления записывается как последовательность полученных целых частей пpоизведения.
Умножение пpоизводится до тех поp, пока дpобная часть пpоизведения не станет pавной нулю. Это значит, что сделан точный пеpевод. В пpотивном случае пеpевод осуществляется до заданной точности. Достаточно того количества цифp в pезультате, котоpое поместится в ячейку.
в частности как из 0.35 получили 0,01011b
Я не совсем понял про пункт останова
"пока дpобная часть пpоизведения не станет pавной нулю"
0.35*2=0.7 -> 0
0.7*2 =1.4 -> 1
0.4*2 =0.8 -> 0
0.8*2 =1.6 -> 1
0.6*2 =1.2 -> 1
она же не стала = 0 ->0.2
можно же дальше продолжать
0.2*2 = 0.4 ->0
0.4*2 = 0.8 ->0
0.8*2 =1.6 -> 1
0.6*2 =1.2 -> 1
и так в цикле... где останавливаться???
← →
AndrewVolkov (2002-11-24 01:53) [85]И насчет VM_KeyDown подскажите, как с ним работать???
У меня он все время 256 дает???
← →
Anatoly Podgoretsky (2002-11-24 09:04) [86]AndrewVolkov (24.11.02 00:56)
"В пpотивном случае пеpевод осуществляется до заданной точности"
В данном случае точность 6 бит
Страницы: 1 2 3 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.012 c