![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 31.01.2010
Сообщений: 8
|
![]()
Дано длинное целое неотрицательное число. Выполнить циклический сдвиг его шестнадцатеричного представления на k цифр вправо. на чистом си.
Код:
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 15.01.2010
Сообщений: 22
|
![]()
только наверно не "y = k" а "y[i] = k" как я понял...чтоб число то в массив записать...чет первое что в голову лезет, это перевести массив в строку(в символьный массив)...то есть отдельно каждый символ массива y[i](для этого надо от y[i] отнять 0х30 ну или '0')...а потом опять эту строку перевести в число по формуле numb = numb * 10 + ch[i] - 0x30;....ну а потом уже сдвигать...думаю должно сработать...
Не забываем повышать рейтинг(для тех, кому помог)...
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
сдвинуть остальные биты (x shr 1) передвнуть выделенный бит ( z shl 3) 0001->1000 подготовить(очистить) место ( x and 1000) склеить результаты (x or z) повторить нужное число раз (сдвинуть нужное число бит сразу) P.S. все числа записаны в двоичной форме использовать битовые операции требуемого языка.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 01.02.2010 в 09:32. |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.01.2010
Сообщений: 22
|
![]()
прощу прощения, ошибся...при переводе числа в строку надо прибавлять 0х30 а не вычитать....
Не забываем повышать рейтинг(для тех, кому помог)...
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
![]() Код:
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.01.2010
Сообщений: 22
|
![]()
ты лучше скажи что не получается, то есть что неправильно работает??как перевести из массива в число я ведь уже написал...осталось сдвигать..
Не забываем повышать рейтинг(для тех, кому помог)...
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
![]()
дело в том что при переводе строки в число получается какая то ерунда
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
![]()
ты написал формулу numb = numb * 10 + ch[i] - 0x30;
тоесть в моём случае это x=x*10+m[i]-0x30 ; А зачем умножать на 10? |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.01.2010
Сообщений: 22
|
![]()
если честно не знаю зачем умножать на 10(что-то с разрядами числа связано наверно) - просто прими эту формулу и все...вобщем все работать должно...сам проверял уже...у меня вывел...есть один вариант почему у тебя не получается...попробуй символьный массив обнулить перед использованием (memset(m, 0, sizeof(m))), то есть сразу после объявления...
Не забываем повышать рейтинг(для тех, кому помог)...
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
![]()
ок попробую спасибо
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Циклический сдвиг | Mish92(21-09) | Помощь студентам | 0 | 07.11.2009 21:59 |
Сдвиг массива. | Джед | Общие вопросы C/C++ | 19 | 10.06.2009 16:44 |
C++ побитовый сдвиг | KOLYTFR | Помощь студентам | 1 | 03.06.2009 22:42 |
сдвиг строки | Анастасия123456789 | HTML и CSS | 7 | 24.02.2009 18:10 |
Сдвиг файла | OrdJONY | Общие вопросы Delphi | 13 | 21.12.2007 22:22 |