vak: (Default)
[personal profile] vak
Сделал питоновский скрипт для забав с вещественными значеними БЭСМ-6. Конвертирует восьмеричное представление в вещественное и обратно.

https://github.com/besm6/besm6.github.io/blob/master/wiki/examples/besmword

Пробуем небольшие числа:
$ besmword 1.0
1.0 = 4050 0000 0000 0000
$ besmword 2.0
2.0 = 4110 0000 0000 0000
$ besmword 3.0
3.0 = 4114 0000 0000 0000
$ besmword 5.0
5.0 = 4152 0000 0000 0000
$ besmword 7.0
7.0 = 4156 0000 0000 0000
$ besmword -1.0
-1.0 = 4020 0000 0000 0000
$ besmword -2.0
-2.0 = 4060 0000 0000 0000
$ besmword -3.0
-3.0 = 4124 0000 0000 0000
$ besmword -5.0
-5.0 = 4166 0000 0000 0000
$ besmword -7.0
-7.0 = 4162 0000 0000 0000
FLT_MAX: максимальные положительное и отрицательное вещественные числа.
$ besmword 7757777777777777
7757 7777 7777 7777 = 9.2233720368464e+18
$ besmword 7760000000000000
7760 0000 0000 0000 = -9.2233720368548e+18
FLT_MIN: наименьшие положительное и отрицательное вещественные числа.
$ besmword 0010000000000000
0010 0000 0000 0000 = 2.7105054312138e-20
$ besmword 0027777777777777
0027 7777 7777 7777 = -2.7105054312187e-20
Нащупываем FLT_EPSILON: дискретность представления вещественных чисел.
$ besmword 4050000000000000
4050 0000 0000 0000 = 1
$ besmword 4050000000000001
4050 0000 0000 0001 = 1.0000000000018
То есть epsilon = 1.0000000000018 - 1.0 = 1.8e-12. Для сравнения: 1.2e-07 для 32-битного float и 2.2e-16 для 64-битного double.

Формат представления чисел БЭСМ-6 описан здесь: http://www.besm6.org/wiki/Numbers

Date: 2019-04-03 16:22 (UTC)
x86128: (Default)
From: [personal profile] x86128
Дописал скрипт имитации работы АЛУ при выполнении операций A+X, A-X, X-A на том уровне как его работу понял читая ТО и симулятор simh.
Cейчас заметил, что появилась реализация команд сложения в АЛУ mesm6. Из Вашего скрипта позаимствовал процедуру вывода числа БЭСМ через ldexp. Удобные функции, не знал, что такие есть в стандартной библиотеке. Отсюда отвлеченный вопрос: при заимствовании отдельных функций необходимо ли копировать шапку с лицензией из Вашего скрипта?
По ходу работы возникали вопросы, попробую сейчас найти ответы в коде Леонида и внести правки.

Date: 2019-04-05 04:56 (UTC)
x86128: (Default)
From: [personal profile] x86128
До этого я делал преобразование чисел "в лоб" с помощью питоновской memoryview :-D

Скоро можно будет и мониторной системой заняться (с реализацией экстракодов ввода/вывода).