Показать сообщение отдельно
Старый 09.12.2009, 17:46
DEAFFF вне форума Посмотреть профиль Отправить личное сообщение для DEAFFF Посетить домашнюю страницу DEAFFF Найти все сообщения от DEAFFF
  № 1  
Ответить с цитированием
DEAFFF
 
Аватар для DEAFFF

Регистрация: Feb 2004
Адрес: Россия, В. Новгород
Сообщений: 255
Отправить сообщение для DEAFFF с помощью ICQ
По умолчанию как прочесть и записать u30 число?

вопрос к профессионалам

делаю небольшой декомпилятор на ас3, дошел уже до ABC тега
там в принципе не сложно, но есть какие то числа:
Цитата:
The type u30 represents a variable-length encoded 30-bit unsigned integer value.
The types u32 and s32 represent variable-length encoded 32-bit unsigned and signed integer values respectively.
Это выдержка из доки официальной.
http://www.adobe.com/devnet/actionsc...m2overview.pdf

есть достаточно похожий опенсорс проект swfutils
http://swfutils.riaforge.org/

но к сожалению там тока чтение этих чисел, например u30 у них читается так:

Код AS3:
public function readEU32():uint
{
	var result:uint = _dataInput.readUnsignedByte();
		if (!(result & 0x00000080))
			return result;
	result = (result & 0x0000007f) | _dataInput.readUnsignedByte()<<7;
		if (!(result & 0x00004000))
			return result;
	result = (result & 0x00003fff) | _dataInput.readUnsignedByte()<<14;
		if (!(result & 0x00200000))
			return result;
	result = (result & 0x001fffff) | _dataInput.readUnsignedByte()<<21;
		if (!(result & 0x10000000))
			return result;
	return (result & 0x0fffffff) | _dataInput.readUnsignedByte()<<28;
};
я не особо силен в булевых вычислениях... как записать подобное число? и где можно об этом почитать?
__________________
зная будущее, хотя бы, на 10 минут вперед, можно покорить весь мир...