Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947

Оператор for. Перевод из 10 СС в двоичную

19.07.2014, 06:05. Показов 1422. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю как с помощью цикла for записать данную программу. Подскажите, пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2014, 06:05
Ответы с готовыми решениями:

Перевод в двоичную сс
Подскажите код программы для перевода числа в двоичную систему. Вот примерная форма, мне надо только в 2чную, для примера. В другие уже сам...

Перевод из десятичной СС в двоичную
Исходные данные поместить в сегменте данных. Результаты вывести на экран. Дано десятичное число, записанное в виде строки ASCII-символов....

Перевод из 16ричной в двоичную
Перевести в двоичную систему счисления произвольное шестнадцатеричное число. Ребят, есть у кого код? Буду должен)

9
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
19.07.2014, 06:15
Pascal
1
2
3
4
5
6
7
8
9
10
var
  a, m, i: Integer;
begin
  Write('Введите число: '); ReadLn(a);
  m:=1 shl (8*SizeOf(a)-1);
  for i:=1 to 8*SizeOf(a) do begin
    Write(Integer(a and m<>0));
    m:=m shr 1;
  end;
end.
0
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
19.07.2014, 06:50  [ТС]
bormant, Можете прокомментировать роль SizeOf в программе?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
19.07.2014, 07:36
Размер переменной в байтах возвращает SizeOf(). На современных вычислительных платформах используется 8-битный байт. Перемножив одно на другое получим количество бит переменной. Чтобы получить 1 в старшем бите, нужно сдвинуть 1 влево на SizeOf(a)*8-1 позицию.
Потенциальная ошибка -- использование для маски (m) знакового типа. У знаковых целых для индикатив знака используется старший разряд. При операции сдвига вправо знак может не учитываться, а может учитываться (сохраняться). Поэтому переменную m следовало объявить как беззнаковую:
m: Word;
0
11 / 11 / 2
Регистрация: 17.02.2014
Сообщений: 947
19.07.2014, 07:54  [ТС]
bormant, Программа не компилируется
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.07.2014, 08:02
jestero, Нужно не бездумно раскидывать темы по форуму, а создавать именно в том разделе, на чем пишете программы. Если пишите например в Паскаль АВС.net, то и создавайте темы здесь
https://www.cyberforum.ru/pascalabc-net/
если уж совсем ума нет, то хоть указывайте какой Паскаль.

Добавлено через 1 минуту
А с чего это Вам приспичило переводить 10 в 2 в цикле for, что за извращение?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
19.07.2014, 12:07
Puporev,
если по условию нужно получить фиксированное количество знаков (8, 16, 32), то for подходит как нельзя лучше:
Pascal
1
2
3
4
5
6
s:=''; 
for i:=1 to SizeOf(a)*8 do begin
  s:=chr(ord('0')+Integer(a and 1))+s;
  a:=a div 2;
end;
WriteLn(s);
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
19.07.2014, 12:09
Ну и выводит в твоем коде типа 0000000000000001111 и что? Это что ли нужно?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
19.07.2014, 12:20
Puporev,
условия разные бывают, например, вывести значения каждого бита переменной (да тех же же regs.flags). Больше байта глазами читать действительно несподручно, да и по 4-кам поделить бывает нелишне.
А уж каких только ограничений условий в учебных целях не напридумают ;-)

Или проиллюстрировать сложение двоичных чисел в столбик, например. Да мало ли как условие поставлено, например, "используя цикл for".

Добавлено через 4 минуты
Да и прервать for никто не запрещает:
Pascal
1
2
3
4
5
6
7
s:=''; 
for i:=1 to SizeOf(a)*8 do begin
  s:=chr(ord('0')+Integer(a and 1))+s;
  a:=a div 2;
  if a=0 then Break;
end;
WriteLn(s);
Правда похоже на почесывание левого уха правой пяткой
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
24.07.2014, 08:10
Стандартный способ
Pascal
1
2
3
4
5
6
var
  i,a:    integer;
begin
  for i:=SizeOf(a)*8-1 downto 0 do
    write(a shr i and 1);
end.
Экзотика
Pascal
1
2
3
4
5
6
7
var
  i,a:    integer;
  bitset: set of byte absolute a;
begin
  for i:=SizeOf(a)*8-1 downto 0 do
    write(ord(i in bitset));
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2014, 08:10
Помогаю со студенческими работами здесь

Перевод в двоичную систему
Доброго времени суток. Проблема такая. У меня на форме есть массивы textbox, при нажатии на checkbox у меня вызывается процедура перевода...

Перевод в двоичную систему
Здравствуйте, как сделать программу в которой можно переводит числа в двоичную систему.Например дано одно слово его нужно перевести в...

Перевод из десятичной в двоичную
Имеется рабочая программа, но загвоздка в том, что выдает значение наоборот, т.е. если ввести число 14, то программа выдает 0111, хотя...

Перевод в двоичную систему
Здравствуйте, написал алгоритм перевода введённого числа в двоичную систему. Проблема в том, что он записывает обратный порядок,...

Перевод из десятичной в двоичную
Не интересует метод Convert.ToString(value, 2); а интересует сам процесс. Я в этом новичок поэтому набросал то что пришло в голову,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru