Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Распознание двоичной системы в AS (http://www.flasher.ru/forum/showthread.php?t=112520)

chingachgoog 03.06.2008 11:10

Я не против :) Можно убрать. Но лично для себя я действительно не представляю надобности в двоичных числах не кратных байту, к томуже это защитит от неопределенной переменной, также начинающейся с буквы "b".

iNils 03.06.2008 11:26

Цитата:

Сообщение от chingachgoog (Сообщение 743342)
Но лично для себя я действительно не представляю надобности в двоичных числах не кратных байту

Есть три объекта, с двумя состоянияниями on или off. Поэтому на каждый объект приходится по биту, всего три. Остальные 5 битов будут избыточны. Ну или объектов будет 9 :D

chingachgoog 03.06.2008 11:40

Цитата:

Сообщение от iNils (Сообщение 743345)
Есть три объекта, с двумя состоянияниями on или off. Поэтому на каждый объект приходится по биту, всего три. Остальные 5 битов будут избыточны. Ну или объектов будет 9 :D

Ну и какие проблемы? Флеш же не выделит под объект только 3 бита или 9. Он байт или слово выделит. Так и нам какая наплевать? Пишем b11000000 и работаем с нужным числом бит.
Вообще смысл всей этой затеи в наглядности для программиста, а она не теряется, что мы пишем b110 или мы пишем b11000000 Вообщем без разницы - как кому угодно пользуйтесь :)

iNils 03.06.2008 11:44

Цитата:

Сообщение от chingachgoog (Сообщение 743349)
Ну и какие проблемы? Флеш же не выделит под объект только 3 бита или 9. Он байт или слово выделит.

Ну и пусть выделяет.
Но мне не надо будет писать b00000001, b00000010 и b00000100, когда достаточно b001, b010 и b100. А сейчас я получаю NaN
Код:

_global.__resolve = function (name) {
        if (name.charAt (0) == 'b') {
                var z = name.slice (1);
                if (!(z.length % 8)) {
                        return parseInt (z, 2);
                }
        }
};
myBinary = b001 + b010 + b100;
trace (myBinary);


chingachgoog 03.06.2008 11:49

Все-таки программисты самые ленивые люди на свете :)

iNils 03.06.2008 11:52

Лень тут совсем не причем. Так читабельнее. И как я выше упомянул, когда объектом будет уже 9, не надо будет писать 16 чисел.

Alex_beginner 03.06.2008 12:07

Цитата:

Вообще смысл всей этой затеи в наглядности для программиста, а она не теряется, что мы пишем b110 или мы пишем b11000000 Вообщем без разницы - как кому угодно пользуйтесь
Обратите внимание:

Код:

trace(parseInt("110",2));
trace(parseInt("11000000",2));

Будет ни одно и тоже. Двоичное число 110 дополняется нулями до 8-ки не справа, а слева.

iNils 03.06.2008 12:26

Цитата:

Сообщение от Alex_beginner (Сообщение 743356)
Двоичное число 110 дополняется нулями до 8-ки не справа, а слева.

Это логично. А какие числа делают наоборот?

Alex_beginner 03.06.2008 12:38

iNils!
А вот пост chingachgooga посмотрите. Он считает, что b110 тоже самое что и b11000000:)

iNils 03.06.2008 12:45

Ну, видно, что он ошибся :)


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

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