Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Перевод числа из двоичной системы в десятиричную)) (http://www.flasher.ru/forum/showthread.php?t=129637)

Deidara 07.09.2009 08:01

Перевод числа из двоичной системы в десятиричную))
 
Подскажите пожалучто как на AS3 перевести число в двоичной системе счисления в десятиричную)))

udaaff 07.09.2009 11:31

parseInt ()

Deidara 07.09.2009 12:48

Не вышло((
Число до 101000
Число после 101000

wvxvw 07.09.2009 12:54

Во-первых, у вас наверняка было не число изначально, а строка. Все числа в АС3 представлены одинаково - а десятичная, или какая угодно другая система представления - это то, как мы (люди) записываем эти числа.
Кроме того, я не знаю, каким редактором вы пользуетесь, но так чтобы поленится посмотреть на количество и тип принимаемых параметров в parseInt() - это ж на сколько надо быть ленивым / невнимательным...

Pushkash 07.09.2009 13:08

Код AS3:

 
internal function perevod(s:String):int{
            var sum:int = 0;           
                for (var i:int = 0; i<s.length; i++) {                       
                        sum += int(s.charAt(i))*Math.pow(2, s.length-(i+1));
            }                 
                return sum;
        }

Моугут быть ошибки с компиляцией. :P

wvxvw 07.09.2009 13:43

Ну, ради развлечения можно и так :)
Код AS3:

function fromBinary(input:String):uint
{
        var b:Boolean = input.indexOf("1") > 0;
        if (b) input = input.substr(input.indexOf("1") - 1);
        if (input.length > 32 || input.match(/[^01]/g).length) throw new RangeError();
 
        var pos:int;
        var len:int = input.length - 1;
        var result:uint = int(input.charAt(pos));
        while (pos++ < len)
        {
                b = input.charAt(pos) === "1";
                result <<= 1;
                if (b) result++;
        }
        return result;
}
 
trace(parseInt("10111010", 2), fromBinary("10111010"));

EDIT: А вообще, конечно, есть много разных способов представить число в бинарном виде... есть числа со знаком, с фиксированой запятой, с плавающей запятой и т.д... алгоритмы соответственно будут разные.

etc 07.09.2009 16:00

А вторым аргументом parseInt никто не пользуется что ли? Понаделали велосипедов с кривыми колесами, ужас…
И да, Олежка, ты редкостный извращенец.

wvxvw 07.09.2009 17:30

Цитата:

Сообщение от etc (Сообщение 848822)
А вторым аргументом parseInt никто не пользуется что ли? Понаделали велосипедов с кривыми колесами, ужас…
И да, Олежка, ты редкостный извращенец.

Может обратишь внимание на последнюю строчку в коде ^)
А я вообще это говорил к тому, что, например, если число в двоичном представлении будет выражено не как положительное целое 32-битное число, то parseInt() не поможет, и таки прийдется самому писать функцию-парсер.

etc 07.09.2009 19:00

Да, но не в таком же виде, в котором ты её написал )

wvxvw 07.09.2009 20:31

А чем собственно говоря не нравится? :quiet:


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

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