Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 26.09.2010, 22:38   #1 (permalink)
MrCyber
Новичок
 
Регистрация: 26.09.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Системы счисления.

Помогите написать простую задачку по переводу из десятичной в двоичную системы счисления. Просьба - не использовать массивы. Заранее спасибо!
MrCyber вне форума   Ответить с цитированием

Старый 26.09.2010, 22:38
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вот полезные ссылки, по которым содержится похожая информация

Усилитель для системы 2.1
Системы счисления
Помогите написать программу на Паскаль на системы счисления
Восстановление системы
Арифметические операции в двоичной системе счисления
Система счисления в Делфи

Старый 27.09.2010, 09:05   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Язык программирования какой?
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 27.09.2010, 09:07   #3 (permalink)
LAMPARD
Member
 
Регистрация: 29.06.2009
Сообщений: 92
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13
По умолчанию

Паскаль скорее .у меня дома решенное где то есть , как найду выложу
LAMPARD вне форума   Ответить с цитированием
Старый 27.09.2010, 10:12   #4 (permalink)
KiD2
Member
 
Аватар для KiD2
 
Регистрация: 07.06.2010
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Хм это уже было... Задача перевода цифр из десятичной в двоичную
KiD2 вне форума   Ответить с цитированием
Старый 27.09.2010, 10:17   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от KiD2 Посмотреть сообщение
Надо же... и впрямь. Впрочем, сейчас нарисовал попроще, без функции. Если действительно Паскаль, и если речь идёт о преобразовании только целых положительных чисел, то можно так:
Код:
VAR
 Dec_Num:LongInt;
 n, i:INTEGER;
BEGIN
 Write('Enter the decimal number: ');
 ReadLn(Dec_Num);
 n:=TRUNC(Ln(1.0*Dec_Num)/Ln(2.0));
 Write('Binary number: ');
 For i:=n downto 0 do
  begin
   Write((Dec_Num div ROUND(Exp(i*Ln(2.0)))));
   Dec_Num:=Dec_Num mod ROUND(Exp(i*Ln(2.0)));
  end;
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 27.09.2010, 10:34   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

И еще чуть более "продвинутый" вариант. Здесь программа зациклена и прерывается, если введен 0:
Код:
VAR
 Dec_Num, Ex_code:LongInt;
 n, i:INTEGER;
BEGIN
 REPEAT
  Write('Enter the decimal number, "0" to exit: ');
  ReadLn(Dec_Num);
  Ex_code:=Dec_Num;
  If Ex_code>0 then
   begin
    n:=TRUNC(Ln(1.0*Dec_Num)/Ln(2.0));
    Write('Binary number: ');
    For i:=n downto 0 do
     begin
      Write((Dec_Num div ROUND(Exp(i*Ln(2.0)))));
      Dec_Num:=Dec_Num mod ROUND(Exp(i*Ln(2.0)));
     end;
    WriteLn;
    WriteLn;
   end;
 UNTIL Ex_code=0;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.02.2011, 23:33   #7 (permalink)
FPS
Member
 
Регистрация: 11.11.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Извиняюсь, что немного не по теме, новую не хотел создавать, не подскажите в какой системе счисления 3 x 3 = 10? Чёто я никак не могу сообразить, не в восьмеричной случайно?)
FPS вне форума   Ответить с цитированием
Старый 16.02.2011, 00:23   #8 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Цитата:
Сообщение от FPS Посмотреть сообщение
Извиняюсь, что немного не по теме, новую не хотел создавать, не подскажите в какой системе счисления 3 x 3 = 10? Чёто я никак не могу сообразить, не в восьмеричной случайно?)
Именно в ней.
MrSTEP вне форума   Ответить с цитированием
Старый 16.02.2011, 06:55   #9 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

3*3 в десятичной равно 9. Для числа 3 переполнения разряда нет, то есть это допустимое значение разряда. Нужно подобрать такую систему счисления, чтобы было переполнение разряда ровно на 1, то есть, так как полученное значение равно 10 и присутствует перевод 1 в старший разряд, то результат произведения совпадает с основанием системы счисления. Отсюда система счисления имеет основанием число 9. Допустимые значения разряда - 0, 1, 2, 3, 4, 5, 6, 7, 8, переполнение разряда возникает при попытке использовать число 9 и большее.

Ответ - в девятиричной системе счисления.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 16.02.2011, 10:01   #10 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Да, вот на таких мелочах я вечно заваливаюсь...
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.