0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
||||||
1 | ||||||
Необходимо вывести двоичное представление числа на экран.16.02.2014, 13:12. Показов 21164. Ответов 20
Метки нет (Все метки)
Собственно само задание..
Код вроде вполне правильный, но все же не работает(( Не могу понять в чем проблема.. Прошу руку помощи)) С клавиатуры вводится целое число. Необходимо вывести его двоичное представление на экран. Программа должна поддерживать все целочисленные типы данных языка реализации (char, int, long int, unsigned int, unsigned long int для языка C/C++, integer, byte, word, shorting, longint для Pascal/Delphi). Отрицательные числа выводятся в дополнительном коде. Необходимо также решить обратную задачу: преобразовать двоичное число в десятичный вид. Замечания: 1. Дополнительный код образуется из прямого путем инверсии бит и прибавления единицы: Пример: -5: 5 = 00000101, -5 = not(5)+1 = 11111010+1 = 11111011 2. Запрещается использовать для машинно-зависимые методы и библиотеки языков программирования. 1. В качестве одного из вариантов решения предлагается следующие алгоритм на псевдоязыке: Код
program Translate1; s : string; begin enter(a); s:=’’; while a<>0 do if (abs(a) mod 2) then s:=’1’+s else s:=’0’+s; a:=abs(a) div 2; end while; if a<0 then mind:=0; for i:=1 to 8 do k:=val(s[8-i+1])+1+mind; s[8-i+1]:=k; if k=2 then begin s[8-i+1]:=’0’; mind:=1; endif if k=3 then begin s[8-i+1]:=’1’; mind:=1; endif endfor endif end; где div и mod - операции целочисленного деления и деления по модулю соответственно. program Translate1; s : string; begin enter(a); s:=’’; while a<>0 do if (abs(a) shr 1) and (1 shl (sizeof(a)+1) + 1) then s:=’1’+s else s:=’0’+s; a:=abs(a) shr 2; end while; if a<0 then mind:=0; for i:=1 to 8 do k:=val(s[8-i+1])+1+mind; s[8-i+1]:=k; if k=2 then begin s[8-i+1]:=’0’; mind:=1; endif if k=3 then begin s[8-i+1]:=’1’; mind:=1; endif endfor endif end; А вод и код:
прошу Вас о помощи
0
|
16.02.2014, 13:12 | |
Ответы с готовыми решениями:
20
Ввести с клавиатуры натуральное число X (X<256). Вывести на экран двоичное представление этого числа (8 разрядов) Вывести на экран двоичное представление беззнакового короткого целого Вывести двоичное представление введенного с клавиатуры десятичного числа Вывести двоичное представление натурального числа, используя рекурсию |
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
17.02.2014, 23:17 [ТС] | 2 |
заплачу, если надо будет
Добавлено через 3 часа 43 минуты БЛИИН помогите пожалуйста
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
|||||||||||
17.02.2014, 23:50 | 3 | ||||||||||
Хм. Ну давайте по очереди:
Функция принимает 2 аргумента: 1 - строка, в которую будет записан результат, 2 - число в любом из целочисленных форматов.
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
17.02.2014, 23:54 [ТС] | 4 |
Alex566, не могли бы Вы отредактировать мой код?
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
|||||||||||
18.02.2014, 00:20 | 5 | ||||||||||
Ну ладно.
1. перевод положительного числа в двоичную систему исчисления происходит правильно. Не понятно только почему при выводе вы выводите строку по символьно циклично + в цикле выводится все время один и тот же символ k. На 17 строке измените на
Смотрю дальше..
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 00:29 [ТС] | 6 |
Alex566, из двоичной в десятичную не правильно переводит. Спасибо, что помогаете)
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
||||||||||||||||
18.02.2014, 00:32 | 7 | |||||||||||||||
2. Отрицательное число переводит в обратный код а не в дополнительный по той же самой причине:
Надо исправить на:
Добавлено через 2 минуты На текущий момент код выглядит так:
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 00:45 [ТС] | 8 |
Alex566, Александр, не смогли, бы Вы доделать мой код?
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
|
18.02.2014, 00:53 | 9 |
Masha_She, ну это все не за секунды делается. К тому же обратный перевод у вас действительно запутанный.
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 00:58 [ТС] | 10 |
Alex566, ну пожааалуйста)) Вы очень добрый молодой человек) Помогите пожалуйста) Буду очень благодарна.
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
||||||
18.02.2014, 01:13 | 11 | |||||
//--------------------- помечено место докуда я дошел
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 01:17 [ТС] | 12 |
Alex566, не хочу показаться наглой, но пожалуйста сможете до конца доделать?))
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
||||||
18.02.2014, 01:25 | 13 | |||||
Программа переводит из десятичной в двоичную положительные и отрицательные числа. И двоичные переводит в десятичную но мне не понятен принцип по которому программа определяет положительное это двоичное число или отрицательное. В остальном программа работает (не учитывая то что написана она кривовато) но я просто сделал чтобы она работала.
Добавлено через 8 минут Все теперь полностью работает
1
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
|
18.02.2014, 01:28 | 14 |
Вот
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 01:40 [ТС] | 15 |
Alex566, я вот тоже задалась таким вопросом, что такое число в десятичной системе исчисления(положительное).. оно должно выводиться вообще?
Добавлено через 6 минут Alex566, я имею ввиду то, что должно выводиться 1 решение.. Например, Ввести число в двоич системе:1111 Оно должно выводить, Десятичное число: -1 Чтобы был только ответ..
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
||||||
18.02.2014, 01:48 | 16 | |||||
Сообщение было отмечено Masha_She как решение
Решение
Ну тогда сделайте так:
Первый бит знаковый, все стольные числовые.
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 01:53 [ТС] | 17 |
Alex566, последний вопрос) Можно каким-либо образом не писать все 32 знака. Например,
11111111111111111111111111111111 а написать например 1111???
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
|
18.02.2014, 02:03 | 18 |
Все остальные знаки примет за нули. Самый первый - знаковый бит.
Откуда у вас эта программа?
0
|
0 / 0 / 0
Регистрация: 12.11.2013
Сообщений: 31
|
|
18.02.2014, 02:38 [ТС] | 19 |
Alex566, тоесть никак нельзя поменять на 1111?
0
|
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
|
|
18.02.2014, 02:40 | 20 |
0
|
18.02.2014, 02:40 | |
18.02.2014, 02:40 | |
Помогаю со студенческими работами здесь
20
Используя битовые операции, вывести на экран двоичное представление беззнакового короткого целого Если известно десятичное представление числа 255, 7, то его двоичное представление Двоичное представление числа Двоичное представление числа Двоичное представление числа Двоичное представление числа x Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |