Язык программирования Форт



Приложение Д. Ответы к упражнениям - часть 4


Блок 15 [15 :0] ( Глава 3. Упражнения 2. 02 из 02 ) ( 5. ) : NOT1 ( n1 -- n2 ) 65535 XOR ; : NOT2 ( n1 -- n2 ) 65535 - ; ( 6.) : SET? ( n1 маска -- f) DUP ROT AND = ; ( 7. ) : NOTSET? ( n1 маска -- f) DUP ROT AND = 0 = ; ( или )

Блок 16 [16 :0] ( Глава 3. Упражнения 3. 01 из 02 ) ( 1. ) : .DEC.BIN ( n -- ) DECIMAL DUP . DUP U. ( 2.) .BIN U.BIN DROP ; ( Таблица должна иметь следующий вид ) ( 1 1 1 1 2 2 10 10 3 3 11 11 32766 32766 111111111111110 111111111111110 32767 32767 111111111111111 111111111111111 -32768 32768 -1000000000000000 1000000000000000 -32767 32769 -1111111111111111 1000000000000001 -3 65533 -11 1111111111111101 -2 65534 -10 1111111111111110 -1 65535 -1 1111111111111111

Бпок 17 [17 :0] ( Глава З. Упражнения 3. 02 из 02 ) ( 3.) ( 65536 + n ) ( 4.) : NEWNEGATE ( n -- -n ) 65535 XOR 1 + ; : NEWNEGATE -1 XOR 1 + ; является эхвквалентным ) ( 65535 XOR выдает то. что называется дополнением по модулю 1; добавление 1 превращает его в дополнение по модулю 2, которое меняет знак. ) ( 5. ) : NEW- ( n1 n2 -- n3 ) NEGATE + ; ( Так в действительности выполняется вычитание в ЭВМ; то есть добавляется дополненме по модулю два. )

Блок 18 [18 :0] ( Глава 3. Упражнения 4. 01 из 02 ) ( 1. ) : .LSB ( n --) 255 AND . ; ( 255 в двоичном виде равно 11111111 ) ( 2.) : MSB ( n -- ) 256 / . ; ( Это не работает для отрицательных чисел, так как отрицательное делимое даст отрицательное частное. ) ( 3.) : .LSB1 ( n -- ) 256 / 256 * - ; ( 4.) : .LSB2 ( n -- ) PAD 1 PAD C@ . ; : .MSB2 ( n -- ) PAD 1 PAD 1+ С@ . ; ( Описания в упражнениях 1 и 2 будут быстрее. ) ( 5.) : 256/ ( n1 -- n2 ) PAD 1+ С@ ; ( В отличие от 256 / это игнорирует знак числа.)

Блок 19 [19 :0] ( Глава 3. Упражнения 4. 02 из 02 ) ( 6.) : 256+ PAD ! PAD 1 + С@ 1 + PAD 1 + C! PAD @ ;

Блок 20 [20 :0] ( Глава 4. Упражнения 1. 01 из 02 ) ( 1. ) ( "Нормал." С округлением по нижн. границе) ( ост част ост част) а. 0 5 0 5 б. 0 0 0 0 в. 2 3 2 3 г. -2 -3 1 -4 д. 2 -3 -1 -4 е. -2 3 -2 3 ж. 0 -5 0 -5 з. 0 -5 0 -5 и. 0 5 0 5 к.


Содержание  Назад  Вперед