2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как в Maple перевести двоичное представление числа в массив?
Сообщение15.05.2011, 21:06 
Помогите пожалуйста, поскольку в Maple новичек.

Код:
s:=11 : convert(s,binary);


Вот например есть у меня число 11, я его перевел в двоичное представление получилось естественно "1011", а теперь мне надо сделать цикл: если первый элемент массива равен 1, то сделать одно преобразование, если нулю то сделать другое преобразование.

Вопрос: как мне загнать двоичное представление в массив и как обращаться к каждому элементу массива? Спасибо.

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение16.05.2011, 10:27 
немного коряво, дальше усовершенсвуйте сами.

Код:
> s:=11 : convert(s,binary);

                                 1011

> A:="1011";

                             A := "1011"

> B:=[seq(parse(A[i]),i=1..4)];

                          B := [1, 0, 1, 1]

> B[1],B[2],B[3],B[4];

                              1, 0, 1, 1

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение28.05.2011, 17:08 
Leox в сообщении #446324 писал(а):
немного коряво, дальше усовершенсвуйте сами.

Код:
> s:=11 : convert(s,binary);

                                 1011

> A:="1011";

                             A := "1011"

> B:=[seq(parse(A[i]),i=1..4)];

                          B := [1, 0, 1, 1]

> B[1],B[2],B[3],B[4];

                              1, 0, 1, 1
А почему не просто:
Код:
convert(11,base,2);
                             [1, 1, 0, 1]
Только надо учитывать, что convert(n,base,b) возвращает цифры, начиная с младшего разряда. Но чаще всего именно так удобнее.

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение28.05.2011, 20:25 
Неужели в Maple нет побитовых операций?

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение28.05.2011, 21:20 
Как побитовые операции относятся к созданию массива из разрядов числа?

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение28.05.2011, 23:08 
arseniiv в сообщении #451315 писал(а):
Как побитовые операции относятся к созданию массива из разрядов числа?


Зачем массив, если человеку нужны значения разрядов?

Побитовые операции, по-всякому, будут быстрее работать. И доп. памяти под ненужный массив не требуют.

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение29.05.2011, 00:39 
alex1910 в сообщении #451350 писал(а):
arseniiv в сообщении #451315 писал(а):
Как побитовые операции относятся к созданию массива из разрядов числа?


Зачем массив, если человеку нужны значения разрядов?

Побитовые операции, по-всякому, будут быстрее работать. И доп. памяти под ненужный массив не требуют.
А Вы тему читали?

 
 
 
 Re: Как в Maple перевести двоичное представление числа в массив?
Сообщение29.05.2011, 14:39 
alex1910 в сообщении #451350 писал(а):
arseniiv в сообщении #451315 писал(а):
Как побитовые операции относятся к созданию массива из разрядов числа?
Зачем массив, если человеку нужны значения разрядов?

По-моему alex1910 сделал вполне разумное замечание. Напомню вопрос ТС:
kosmoskozak в сообщении #446224 писал(а):
Вот например есть у меня число 11, я его перевел в двоичное представление получилось естественно "1011", а теперь мне надо сделать цикл: если первый элемент массива равен 1, то сделать одно преобразование, если нулю то сделать другое преобразование.

Если этот массив нужен только для анализа битов в цикле, то в С это делается битовыми операциями и сдвигами. Что-то вроде
Код:
void foo (int number)
{
    int work = number;
    int count = 0;
    while (work) {
        if (work & 1) {
            // 1
        }
        else {
            // 0
        }
        work >>= 1;
        count += 1;
    }
    // рассмотрено 'count' младших разрядов; остальные разряды - нулевые
}

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group