powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Напомните, пожалуйста, как числа переводить?
19 сообщений из 19, страница 1 из 1
Напомните, пожалуйста, как числа переводить?
    #33654712
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остаток от деления на основание системы счисления?

Мне надо вывести число типа integer в двоичной и восьмеричной системе
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33654742
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в языке нужных функций нету?
Привожу метод "в лоб", возможно, есть более оптимизированные.

Пусть m_0 -- число, n -- основание системы, тогда нижний разряд p_1 в новой системе счисления будет остаток от деления нацело m % n.
m_1 = m_0 - p_1
p_2 = m_1 % n**2
...
m_i = m_i-1 - p_i
p_i+1 = m_i % n**i
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33654744
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот же инерция мышления...
Последовательней нумеровать p с нуля, тогда
p_0 = m_0 % n
m_1 = m_0 - p_0
...
p_i = m_i-1 % n**i
m_i = m_i-1 - p_i

(ещё и со степенью напортачил в тот раз..)
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33654747
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.

Завтра буду разбираться.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33654927
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinМне надо вывести число типа integer в двоичной и восьмеричной системе

Если PHP, то вывести можно с помощью printf.

P.S. Не знаю подойдет такой вариант или нет.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656173
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все очень просто. Восьмеричная и двоичная - кратные.
Три разряда двоичной отображаются в один октет
в восьмеричной системе.

DesHexBin000000 000101000 001202000 010303000 011404000 100505000 101606000 110707000 111810001 000

Для фрагмента (октета) можно использовать
битовые операции (если таковые язык поддерживает).
Это проще, чем делить и вычислять остаток от 2.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656179
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу. Хотел сказать - ..для выделения фрагмента...
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656331
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin ты же фэн Linux!
Поэтому надо по-нашему :-)


Код: plaintext
1.
2.
echo "obase=2;100" | bc
echo "obase=8;100" | bc
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656382
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, если бы я мог выбирать я написал бы это на сях, или яве, или питоне в две строчки. Прочитать число, вывести число. Всё!

Но тут просят сделать задание по информатике и среда - дэлфи:(
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656614
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаток Delphi, но по моему, там такие операции есть.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656716
jdo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinБлин, если бы я мог выбирать я написал бы это на сях, или яве, или питоне в две строчки. Прочитать число, вывести число. Всё!

Но тут просят сделать задание по информатике и среда - дэлфи:(

Какие проблемы? В паскале есть тоже % - mod, / - div, и xor, and, or. Что ещё надо то?
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656727
rofl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
const digits:array[ 0 .. 35 ] of char =('0',..,'9','a',...,'z'); //пЕтоном сфАрмЕруй :))
function int2base(v:longint; base:int):string;
var s:string;
begin
 s:='';
 while v>= 0  do
 begin
    k:= v mod base;
    v:=v div base;
   s:=digits[k]+s;
 end;
 result:=s;
end;
begin
 writeln(int2base( 100 , 2 ));
 writeln(int2base( 100 , 3 ));
 writeln(int2base( 100 , 8 ));
end.
Для отрицательных чисел - упражняйсе сам
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656884
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jdo123
Какие проблемы? В паскале есть тоже % - mod, / - div, и xor, and, or. Что ещё надо то?
Никаких. За исключением того что в сях делается примерно так:
scanf('%i', i);
printf('%o, %b', i, i);


rofl
Спасибо.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656903
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Delphi - то там тоже форматирование доступно

во-первых в WinAPI есть функция wvsprintf
да и в самом Delphi FormatStr
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656968
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--Если Delphi - то там тоже форматирование доступно

во-первых в WinAPI есть функция wvsprintf
да и в самом Delphi FormatStr
Здорово. Спасибо.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33656979
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--FormatStr
Какая версия? Какой модуль? Она у меня в хэлпе даж не описана.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33657151
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извини Sarin, функция вроде просто Format. Давно уже без Делфи я...
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33657194
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--извини Sarin, функция вроде просто Format. Давно уже без Делфи я...А у него нету %o :) Дельфевый Format умеет только %x.
...
Рейтинг: 0 / 0
Напомните, пожалуйста, как числа переводить?
    #33663754
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function IntToStrByBase(aValue:cardinal, aDigits:string):string;
var base:byte;
begin
  base:=Len(aDigits);
  if aValue= 0  then Result:=aDigits[ 1 ];
  WHILE aValue> 0  do begin
      Result:=aDigits[(aValue mod base)+ 1 ]+Result;
      aValue=aValue div base;
  end;
end function

function IntToBinStr(aValue:cardinal):string;
begin
  Result:=IntToStrByBase(aValue, '01');
end;

function IntTo13Str(aValue:cardinal):string;
  Result:=IntToStrByBase(aValue, '0123456789ABCD');
end;
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Напомните, пожалуйста, как числа переводить?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]