![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 6
|
Требуется взять из ByteArray несколько байтов, отмерить от первого байта несколько бит и все остальные биты преобразовать в int. Как это лучше сделать? Необходимо сохранение знака.
например Здесь я взял 3 байта отмерил от начала 4 бита и хочу преобразовать 16 следующих бит в int. Помогите чем можете. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Случайно это не попытка прочитать swf_rect?
|
|
|||||
|
Modus ponens
|
var bin_source:String = '11111111110100111001110110110110'; //32 bit integer var bin_int:int = parseInt(bin_source, 2); trace(bin_source); var ba:ByteArray = new ByteArray(); ba.writeInt(bin_int); ba.position = 0; var result:int = ba.readInt(); //trace(result.toString(2)); var signesToStrip:int = 3; var mask0:uint = uint(2 << (signesToStrip - 1)) - 1; var mask1:uint = uint(2 << (31 - signesToStrip)); result = result - mask0 * mask1; //drop 3 bits from the start trace(result.toString(2));
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
var src:String = '0101001110011101101101100'; trace(src); src = src.substr(4, 16); var bin:Number = parseInt(src, 2); trace(bin.toString(2)); ![]() |
|
|||||
|
Modus ponens
|
Эээээ... ну как бы строки там только для того, чтобы было видно, что в байтаррей будет записано... для работы они не нужны...
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
![]() |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 6
|
Строками проще, но уж больно медленно. Спасибо попробую.
Цитата:
Последний раз редактировалось alexcon314; 10.07.2008 в 17:09. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 06:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|