Показать сообщение отдельно
Старый 02.07.2016, 01:12
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 8  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Упрощение(без использования двумерного массива)
Код AS3:
var b:ByteArray = new ByteArray();
b.writeInt(parseInt("11100111"+
					"01000010"+
					"01000010"+
					"01111110", 2));
b.writeInt(parseInt("01111110"+
					"01000010"+
					"01000010"+
					"11100111", 2));		   
 
 
function bitFor(b:ByteArray, f:Function):void
{
	var len:int = b.length;
	var cntr:int = 0;
	for(var i:int = 0; i < len; i ++)
	{
		var curr:int = b[i]; 
		f(cntr,0x01 & (curr >> 7)); cntr++;
		f(cntr,0x01 & (curr >> 6)); cntr++;
		f(cntr,0x01 & (curr >> 5)); cntr++;
		f(cntr,0x01 & (curr >> 4)); cntr++;
		f(cntr,0x01 & (curr >> 3)); cntr++;
		f(cntr,0x01 & (curr >> 2)); cntr++;
		f(cntr,0x01 & (curr >> 1)); cntr++;
		f(cntr,0x01 & curr); cntr++;
	}
}
 
var bmd:BitmapData = new BitmapData(8, 8, true, 0);
bitFor(b, function(i:int,bool:Boolean)
{
	bmd.setPixel32(i%8, int(i/8), bool?0xFF000000:0x00000000);
});
 
var bmp:Bitmap = new Bitmap(bmd, "auto", false);
bmp.scaleX = bmp.scaleY = 9;
addChild(bmp);


Добавлено через 10 часов 35 минут
Упрощённый вариант функции прохождения по битам.
Код AS3:
function bitFor(b:ByteArray, f:Function):void
{
	var len:int = b.length;
	var cntr:int = 0;
	for(var i:int = 0; i < len; i ++)
	{
		var curr:int = b[i]; 
		for(var j:int = 7; j > -1; j--)
			f(cntr,0x01 & (curr >> j)), cntr++;
	}
}
__________________
There is no thing in this world that is not simple.