|
|
|||||
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
что такое отрицательный байт?
возвращает отрицательное значение.. как его превратить в обычный байт или что это вообще такое и почему? не понятно
|
|
|||||
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
а объяснить что такое отрицательный байт не? мне надо выяснить что приходит в сокет
|
|
|||||
а чем вам не нравится отрицательный байт? Любые целые числа это просто набор бит, хотим понимаем его как знаковый набор, а хотим как беззнаковый. Вот в вики почитать можно. В яве вон вообще беззнаковых нету, и ничего, живут.
__________________
:) |
|
|||||
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
спасибо
|
|
|||||
В сокет вам просто сваливаются порции нолей и единиц. Единственно что гарантируется так это то что придут они в той последовательности что их отправили, и совсем не гарантируется что приходить будут теми же порциями что и уходить. Как эти нолики и единицы читать это ваш выбор, хотите байтами, хотите интами, хотите знаковыми, а хотите и беззнаковыми. Да хоть строку оттуда можно доставать.
__________________
:) |
|
|||||
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
может вы мне еще расскажите http://tools.ietf.org/html/draft-iet...l-17#section-5 что такое RSV, ато я не понять, очень сложно написано
|
|
|||||
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
Прочитал.. веб сокет мы взяли временно, пока не можем заставить nginx слать бинарные данные через модуль push
|
|
|||||
Modus ponens
|
Отрицательный байт во флеше (имейте в виду, что не всегда используется одна и та же запись для негативных чисел в разных языках).
Любое число можно представить в "бинарной" форме, где каждый порядок, это 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 complement - замена всех единиц нулями, а всех нулей - единицами, в AS3 эту опреацию выполняет оператор ~ (тильда). complement two - выполнить complement и прибавить единицу. Т.е. получение отрицательного числа можно расписать как: Таким образом, мы, опять же, храним в крайнем левом бите знак, а во всех остальных - значение числа, если оно положительное, или его дополнение (complement), если оно отрицательное. Посмотрим на пример выше (в байте у нас 8 битов): 0 0101010 = 42 рассчитаем -42 complement: 0 1010101 (заменили все нули единицами и единицы нулями). sign: 1 1010101 (заменили знаковый бит). add 1: 1 1010110 (сложили последний бит с 1, но т.как 2 "не помещается" в порядок, то увеличили значение в следующем порядке). Побочным явлением такого подхода так же является то, что модуль самого маленького отрицательного числа, которое мы можем записать на единицу больше модуля самого большого положительного числа, которое мы можем записать. Проверка:
__________________
Hell is the possibility of sanity |
Часовой пояс GMT +4, время: 18:06. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|