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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.07.2010, 17:57
inozemcev вне форума Посмотреть профиль Отправить личное сообщение для inozemcev Найти все сообщения от inozemcev
  № 1  
Ответить с цитированием
inozemcev
[+ 1.0 08.10.14]
 
Аватар для inozemcev

блогер
Регистрация: Mar 2010
Адрес: x = stage.stageWidth/2 y= stage.stageHeight/2
Сообщений: 293
Записей в блоге: 2
По умолчанию синтаксис AS3

Не подскажете как логически интерпритирровать следующие выражения:

Код AS3:
private static function H(arg1:uint, arg2:uint, arg3:uint):uint
        {
            return arg1 ^ arg2 ^ arg3;
        }
 
        private static function I(arg1:uint, arg2:uint, arg3:uint):uint
        {
            return arg2 ^ (arg1 | !arg3);
        }
 
        private static function G(arg1:uint, arg2:uint, arg3:uint):uint
        {
            return arg1 & arg3 | arg2 & !arg3;
        }

Старый 10.07.2010, 18:42
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Это не столько синтаксис, сколько побитовые логические операторы:
Bitwise XOR ^- http://help.adobe.com/en_US/FlashPla...ml#bitwise_XOR

Bitwise OR | - http://help.adobe.com/en_US/FlashPla...tml#bitwise_OR

Bitwise AND & - http://help.adobe.com/en_US/FlashPla...ml#bitwise_AND

Они работают с бинарным представлением числа, что бы понять, можно поигратся с такиви вещами:
Код AS3:
trace( "0001 ^ 0010" );
trace( ( 1 ^ 2 ).toString( 2 ) );
trace( "0011 ^ 0010" );
trace( ( 3 ^ 2 ).toString( 2 ) );
trace( "" );
trace( "0001 | 0010" )
trace( ( 1 | 2 ).toString( 2 ) );
trace( "0011 | 0010" );
trace( ( 3 | 2 ).toString( 2 ) );
trace( "" );
trace( "0001 & 0010" );
trace( ( 1 & 2 ).toString( 2 ) );
trace( "0011 & 0010" );
trace( ( 3 & 2 ).toString( 2 ) );
Один из простейших примеров - Флаги:

Код AS3:
package
{
	import flash.display.Sprite;
 
	public class Test extends Sprite
	{
		protected static const SWEET:uint = 1;
		protected static const SOAR:uint = 2;
		protected static const HOT:uint = 4;
		protected static const SAVORY:uint = 8;
 
		public function Test()
		{
			super();
 
			trace( taste( SWEET | SOAR ) );
			trace( taste( HOT | SAVORY ) );
			trace( taste( SOAR | SAVORY ) );
			trace( taste( SWEET | HOT | SOAR ) );
			trace( taste( SWEET | SAVORY | HOT | SOAR ) );
 
 
		}
 
		protected function taste( flags:uint ):String
		{
			var result:Array = [];
 
			if( flags & SWEET )
				result.push( "sweet" );
			if( flags & SOAR )
				result.push( "soar" );
			if( flags & HOT )
				result.push( "hot" );
			if( flags & SAVORY )
				result.push( "savory" );
 
			return result.join( " " );
		}
	}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 11.07.2010, 02:06
inozemcev вне форума Посмотреть профиль Отправить личное сообщение для inozemcev Найти все сообщения от inozemcev
  № 3  
Ответить с цитированием
inozemcev
[+ 1.0 08.10.14]
 
Аватар для inozemcev

блогер
Регистрация: Mar 2010
Адрес: x = stage.stageWidth/2 y= stage.stageHeight/2
Сообщений: 293
Записей в блоге: 2
Работаю с адобовским MD5 в оригинальном коде используются операторы ! перед числом инт
и из за этого выскакивает исключение. Implicit coercion но как бороться с этим не знаю, поскольку плохо понимаю эти побитовые сдвиги

Добавлено через 1 минуту
что теоретически может значить оператор ' ! ' перед числом ?! Может быть замена знака на противоположный ?

Старый 11.07.2010, 02:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
что теоретически может значить оператор ' ! ' перед числом ?! Может быть замена знака на противоположный ?
Приводит число в булевому значению, все что не 0 будет false, а 0 true.
Цитата:
этого выскакивает исключение. Implicit coercion
А полная ошибка какая?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.07.2010, 02:59
inozemcev вне форума Посмотреть профиль Отправить личное сообщение для inozemcev Найти все сообщения от inozemcev
  № 5  
Ответить с цитированием
inozemcev
[+ 1.0 08.10.14]
 
Аватар для inozemcev

блогер
Регистрация: Mar 2010
Адрес: x = stage.stageWidth/2 y= stage.stageHeight/2
Сообщений: 293
Записей в блоге: 2
Все исправил сравнив разные версии. для корректной работы потребовалось заменить
!int на (~int)

Деталей объяснить на смогу. Простите, очень плохо разбираюсь в 32 разрядных операциях

Старый 11.07.2010, 03:34
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
это операции называются битовыми. и 32 разряда это тоже совсем из другой оперы.

Старый 11.07.2010, 11:55
inozemcev вне форума Посмотреть профиль Отправить личное сообщение для inozemcev Найти все сообщения от inozemcev
  № 7  
Ответить с цитированием
inozemcev
[+ 1.0 08.10.14]
 
Аватар для inozemcev

блогер
Регистрация: Mar 2010
Адрес: x = stage.stageWidth/2 y= stage.stageHeight/2
Сообщений: 293
Записей в блоге: 2
Из вашего источника :

Ряд источников по языкам низкого уровня называет побитовые логические операции просто логическими,[1][2] но в терминологии программирования на языках высокого уровня в названиях битовых операций присутствуют прилагательные битовый, побитовый (например: «побитовое логическое И», оно же «побитовое умножение»), поразрядный.

Скорее всего бит и двоичный разряд синонимы. Но в целом вы правы. Спасибо.

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

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

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


 


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


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