Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
PROGRAM BinaryRepresentation2;
VAR i,m,b: BYTE;
BEGIN
b:=65;
m:=$80; {bin = 01000 000}
FOR i:=l TO 8 DO
BEGIN IF (MEM[SEG(b):OFS(b)] AND m) = 0
THEN WRITE('0')
ELSE WRITE('1');
m:=m SHR 1
END; WRITELN
END.
Кратко разберемся, как она работает. В "изучаемую" переменную b поместим некоторое значение, например, 65. Затем, предварительно подготовив в переменной m так называемую "маску" для выделения самого старшего бита числа, выведем на экран по очереди содержимое всех 8 бит переменной b. Для этого в цикле будем извлекать из памяти байт, в котором лежит значение переменной b (в программе это записано как довольно специфическое выражение мем[зес(ь):OFS(b)], которое, поверьте автору на слово, действительно "напрямую" извлекает из ОЗУ значение "того самого" байта), выделять из него один бит с помощью операции and и выводить результат анализа на экран. Подчеркнем, что последняя строка цикла сдвигает "маску" на один разряд вправо, тем самым в следующий раз будет выделяться соседний бит.
Запустив описанную программу, увидим на экране строку 01000001 которая и является двоичным представлением исходного числа 65. Разумеется, можно повторить опыт и с другими значениями. Это читатели без труда могут проделать самостоятельно.
Вывод. В памяти компьютера числа хранятся в двоичном виде.
Дата публикования: 2015-07-22; Прочитано: 134 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!