|
|
|||||
Регистрация: Mar 2013
Сообщений: 2
|
as3crypto BigInteger
Доброго времени суток!
Если кто в курсе, подскажите пожалуйста: Почему, при инициализации BigInteger строкой, содержащей HEX байты (да и не только строкой), периодически (довольно часто) в начало добавляется $00 байт? Пример 1: Строка: 95bd0d91f90d949128de1c067bf2da900fd0af3e547af3a78d4ab4219d30a5797029e413da52cffd51fe8132c029ee1df1a5dc978a2fc0d22801d6c6a3458e12 Первые 16 байт: 00 95 BD 0D 91 F9 0D 94 91 28 DE 1C 06 7B F2 DA 60 Пример 2: 56123070dcc622a77210c81afce5f207d0c81c3b5d97b1e53e97e886341375e58944afd398c2da5e15e8fbb157c3b311a86c2e406c148114820379f3157fed87 56 12 30 70 DC C6 22 A7 72 10 C8 1A FC E5 F2 07 60 Пример 3: b64f9b3808a16793d60168e383a4f67191331420f90d8a5f8338a65cd63d6e786ea9014687b1e4969ce906527b03c50bf2b1ded5b98b32ea04f52d8b3a4d7baf 00 B6 4F 9B 38 08 A1 67 93 D6 01 68 E3 83 A4 F6 60 Пример 4: 7a6ec29dec9af29a0450e7c699f970e1567ca6f163b91e294b49b98edebdd0104820846ad26af1cecee29d77f33d7979723ea764b33af5bf1181052aa289b653 7A 6E C2 9D EC 9A F2 9A 04 50 E7 C6 99 F9 70 E1 60 Пример 5: 567ab6105453700fd0a37483829fc2a4c07a7a0805511623f3d692c4ca2c3eb72ca3533acab6d2100321126d4d118b6bca86de03de3498ca790ceaa1d69c99d 05 67 AB 61 05 45 37 00 FD 0A 37 48 38 29 FC 2A 60 Последний раз редактировалось iNils; 16.03.2013 в 15:56. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
ну наверное, потому что БольшойИнтеджер для удобства вычислений разложен
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Регистрация: Mar 2013
Сообщений: 2
|
Цитата:
НО. Как это объясняет появление 129 байта в начале, есть BigInteger был инициализован 256 символьной hex-строкой (128 байт)? Добавлено через 16 часов 39 минут Как оказалось, если 1 байт больше 128, то добавляется это нулевой байт в начало. Зачем? - Так и не понял. |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Это дополнительный двоичный код. 2-complement вроде бы на английском. Старшая единица в числе обозначает, что оно отрицательное. Ее отсутствие - что число положительно. Соответственно, чтобы ваше число не трактовалось, как отрицательное, и добавляется дополнительный байт.
Почему сделали 2-complement а не отдельный флаг negative/positive - другой вопрос. Нужно смотреть на частоту различных операций и их реализацию. Цитата:
|
Часовой пояс GMT +4, время: 20:07. |
|
« Предыдущая тема | Следующая тема » |
|
|