Я надеюсь, что это не слишком самоуверенно для SO; у него может не быть хорошего ответа.
В части библиотеки, которую я пишу, у меня есть массив байтов, который заполняется значениями, предоставленными пользователем. Эти значения могут быть типа Float, Double, Int (разных размеров) и т. д. с двоичным представлением, которое вы можете ожидать, скажем, от C. Это все, что мы можем сказать о ценностях.
У меня есть возможность для оптимизации: я могу инициализировать свой массив байтов байтом MAGIC
, а затем всякий раз, когда нет байта в введенном пользователем значении равно MAGIC
, я могу выбрать быстрый путь, иначе я нужно идти медленным путем.
Итак, мой вопрос: каков принципиальный способ выбора моего магического байта, чтобы он с достаточной вероятностью не отображался в (различно закодированных и распределенных) данных, которые я получаю?
Часть моего вопроса, я полагаю, заключается в том, существует ли что-то вроде закона Бенфорда, который может определить мне кое-что о распределении байтов во многих видах данных.