Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.03.2013, 20:05
POZiTRON вне форума Посмотреть профиль Отправить личное сообщение для POZiTRON Найти все сообщения от POZiTRON
  № 1  
Ответить с цитированием
POZiTRON

Регистрация: Mar 2013
Сообщений: 2
Question 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.
Старый 16.03.2013, 00:00
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
ну наверное, потому что БольшойИнтеджер для удобства вычислений разложен побайтово на двухбайтовые слова.

Старый 16.03.2013, 00:08
POZiTRON вне форума Посмотреть профиль Отправить личное сообщение для POZiTRON Найти все сообщения от POZiTRON
  № 3  
Ответить с цитированием
POZiTRON

Регистрация: Mar 2013
Сообщений: 2
Цитата:
Сообщение от i.o. Посмотреть сообщение
ну наверное, потому что БольшойИнтеджер для удобства вычислений разложен побайтово на двухбайтовые слова.
Да, разумеется там внутри находится массив байт, точнее Int64 (на сколько я знаю).

НО.
Как это объясняет появление 129 байта в начале, есть BigInteger был инициализован 256 символьной hex-строкой (128 байт)?

Добавлено через 16 часов 39 минут
Как оказалось, если 1 байт больше 128, то добавляется это нулевой байт в начало. Зачем? - Так и не понял.

Старый 17.03.2013, 20:27
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 4  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Это дополнительный двоичный код. 2-complement вроде бы на английском. Старшая единица в числе обозначает, что оно отрицательное. Ее отсутствие - что число положительно. Соответственно, чтобы ваше число не трактовалось, как отрицательное, и добавляется дополнительный байт.

Почему сделали 2-complement а не отдельный флаг negative/positive - другой вопрос. Нужно смотреть на частоту различных операций и их реализацию.

Цитата:
Как оказалось, если 1 байт больше 128
Должно быть не так. Лишний байт должен добавляться, если в строке у вас первый байт не меньше 128 (т.е. 128 тоже добавляет лишний байт в кодировке).

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.