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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.04.2012, 13:45
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 1  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
По умолчанию что такое отрицательный байт?

Код AS3:
trace(byteArray.readByte().toString(2))
возвращает отрицательное значение.. как его превратить в обычный байт или что это вообще такое и почему? не понятно

Старый 27.04.2012, 13:51
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 2  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
readUnsignedByte() не?

Добавлено через 35 секунд
и вообще справку по байтарраю почитать?
__________________
:)

Старый 27.04.2012, 13:54
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 3  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
Цитата:
Сообщение от Aquahawk Посмотреть сообщение
readUnsignedByte() не?

Добавлено через 35 секунд
и вообще справку по байтарраю почитать?
а объяснить что такое отрицательный байт не? мне надо выяснить что приходит в сокет

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

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
а чем вам не нравится отрицательный байт? Любые целые числа это просто набор бит, хотим понимаем его как знаковый набор, а хотим как беззнаковый. Вот в вики почитать можно. В яве вон вообще беззнаковых нету, и ничего, живут.
__________________
:)

Старый 27.04.2012, 14:11
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 5  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
спасибо

Старый 27.04.2012, 14:13
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 6  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
В сокет вам просто сваливаются порции нолей и единиц. Единственно что гарантируется так это то что придут они в той последовательности что их отправили, и совсем не гарантируется что приходить будут теми же порциями что и уходить. Как эти нолики и единицы читать это ваш выбор, хотите байтами, хотите интами, хотите знаковыми, а хотите и беззнаковыми. Да хоть строку оттуда можно доставать.
__________________
:)

Старый 27.04.2012, 14:24
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 7  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
может вы мне еще расскажите http://tools.ietf.org/html/draft-iet...l-17#section-5 что такое RSV, ато я не понять, очень сложно написано

Старый 27.04.2012, 14:41
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 8  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
не, вот тут я пас, а зачем вам WebSocket? Я никогда с ними не работал и понятия не имею что это. Прочитали хелп адоба про сокет?
__________________
:)

Старый 27.04.2012, 14:43
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 9  
Ответить с цитированием
gagaga
[+1 22.04.13]
[+1 06.03.13]

Регистрация: Apr 2012
Сообщений: 239
Прочитал.. веб сокет мы взяли временно, пока не можем заставить nginx слать бинарные данные через модуль push

Старый 27.04.2012, 15:59
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Отрицательный байт во флеше (имейте в виду, что не всегда используется одна и та же запись для негативных чисел в разных языках).
Любое число можно представить в "бинарной" форме, где каждый порядок, это 2 возведенное в степень равную расстоянию от конца числа.
Код:
Т.е. 101010 это:
  0 * 2^0 = 0
  1 * 2^1 = 2
  0 * 2^2 = 0
  1 * 2^3 = 8
  0 * 2^4 = 0
  1 * 2^5 = 32
+ ------------
= 2 + 8 + 32 = 42
Чтобы иметь возможность записать знак числа нам нужно потратить один порядок на его хранение. Мы могли бы выделить 1 бит в начале числа для знака а остальные биты использовать для записи беззнакового числа. Но, в такой ситуации мы бы получили отрицательный и положительный ноль (например, в числах с плавающей запятой именно так и происходит - в них есть положительные и отрицательные нули). Но в целых числах используется прием complement two.

complement - замена всех единиц нулями, а всех нулей - единицами, в AS3 эту опреацию выполняет оператор ~ (тильда).

complement two - выполнить complement и прибавить единицу. Т.е. получение отрицательного числа можно расписать как:

Код AS3:
function minus(x:int):int { return ~x + 1; }
Таким образом, мы, опять же, храним в крайнем левом бите знак, а во всех остальных - значение числа, если оно положительное, или его дополнение (complement), если оно отрицательное. Посмотрим на пример выше (в байте у нас 8 битов):

0 0101010 = 42

рассчитаем -42

complement: 0 1010101 (заменили все нули единицами и единицы нулями).
sign: 1 1010101 (заменили знаковый бит).
add 1: 1 1010110 (сложили последний бит с 1, но т.как 2 "не помещается" в порядок, то увеличили значение в следующем порядке).

Побочным явлением такого подхода так же является то, что модуль самого маленького отрицательного числа, которое мы можем записать на единицу больше модуля самого большого положительного числа, которое мы можем записать.

Проверка:
Код AS3:
private function verify():void
{
	var bytes:ByteArray = new ByteArray();
	bytes[0] = -42;
	trace(uint(-42).toString(2).substr(-8, 8), // 11010110
		bytes[0].toString(2), // 11010110
		bytes[0].toString(2) == "11010110"); // true
}
__________________
Hell is the possibility of sanity

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

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

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


 


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


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