Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2010, 08:39   #1
sid
Пользователь
 
Регистрация: 15.12.2006
Сообщений: 17
По умолчанию Проблема с битовыми операциями

Народ подскажите! Че то никто не может подсказать. Постараюсь объяснить, как я это делаю на бумаге. Допустим у меня число 155555. В какой это системе я затрудняюсь ответить. Это число я расписываю в двоичной сист. по маске 24 34 34. т.е. у меня получ. 01.0101.101.0101.101.0101 и в конец я доб. 0, разб. на триады и запис. в восьм. виде. получ. 2552652. Вопрос, как это расписать на языке прогр.???
sid вне форума Ответить с цитированием
Старый 05.12.2010, 13:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Че то никто не может подсказать.
Ну это легко обьяснить - задание с подперевывертом... Без 100 грам не разберешся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.12.2010, 13:59   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

интересно, а если у Вас первая цифра числа будет больше 3, как Вы распишете "по маске 2 4 3 4 3 4" ?! ну-ка, для числа
999888 или для числа 5979790
распишите, пожалуйста...

а вообще алгоритм простой.
Переводите число в строку.
Берёте по одной циферке из этой строки и переводите по Вашей маске в Bin
например, с помощью такой функции:
Код:
   function Int2Binary(l: longint; NLength : integer): string;
   { int32 to its binary string representation}
   var
     i: longint;
     s: string;
   begin
     s := '';
     repeat
       if odd(l) then
         s := '1' + s
       else
         s := '0' + s;
       l := l shr 1;
     until l=0;

     while length(s)<NLength do s := '0'+s;
     Int2Binary := s;
  end;
все бинарные строчки складываете.

потом к полученной строке справа добавляете '0' и полученную строку справа налево по три элемента переводите из двоичного представления...
всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.12.2010, 15:12   #4
sid
Пользователь
 
Регистрация: 15.12.2006
Сообщений: 17
По умолчанию

Больше 3-х быть в моем случае не может. Там как-то хитро сделано... Ну ладно придется делать так, как Вы предложили. Это проще, чем разбираться
sid вне форума Ответить с цитированием
Старый 05.12.2010, 23:01   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от sid Посмотреть сообщение
В какой это системе я затрудняюсь ответить.
"Сделай мне то, не знаю что". А вы ещё удивляетесь, чего не подсказывают :D
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как переделать программку с операциями над множествами! sproject Помощь студентам 0 07.03.2010 09:30
ПРоблемы с булевыми операциями vavisv Помощь студентам 0 01.03.2010 23:12
Создание класса с операциями stellavin Общие вопросы .NET 6 14.12.2009 22:10
Тайм аут между операциями sergiksergik Microsoft Office Excel 6 09.06.2009 23:51
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37