Я'пытаюсь написать программу для EDSAC и застрял на понимании коротких и длинных целых чисел - иногда я ввожу что-то и получаю ноль, а в других случаях - единицу.
Так, например:
Если я ввожу P0F
, то сохраняется 0.
Если я ввожу P0D
, сохраняется 1.
Если я введу P1F
, будет сохранено 2.
Если я введу P2D
, будет сохранено 3.
F
означает использование 17-битного целого числа, а D
- полного 35-битного целого числа.
Кто-нибудь может объяснить, почему P0F и P0D не имеют одинакового целочисленного значения, а только разную длину бита?
В настоящее время я выполняю задание по EDSAC, и, пытаясь разобраться с тем, как хранить константы, я обнаружил, что это работает следующим образом:
PNF
, где N
- целое число, хранит значение 2NPND
, где N
- целое число, хранит значение 2N+1