0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 18
|
||||||
1 | ||||||
Поразрядные операции04.11.2013, 17:58. Показов 827. Ответов 14
Метки нет (Все метки)
Помогите пожалуйста доделать программу, :даны два int числа: N1 = ABCD и N2 = EFGH, где AB…GH – 16 – ричные цифры. Образовать long число HGFEABAB, используя только поразрядные операции. получаю число на выходе: EFFEABAB, помогите найти ошибку,чтобы вместо EF ,было HG:
0
|
04.11.2013, 17:58 | |
Ответы с готовыми решениями:
14
Поразрядные операции поразрядные операции Поразрядные операции Поразрядные операции |
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
04.11.2013, 19:05 | 2 |
return ((n2 & 0xF<< 56)) | ((n2 & 0xFO) << 40) | ((n2 & 0xFOO) << 24) | ((n2 & 0xFOOO) << 8)
| ((n1 & 0xFF00) >> 32 | ((n1 & 0xFF00) >> 48; Добавлено через 2 минуты Извивяюсь return ((n2 & 0xF<< 56)) | ((n2 & 0xFO) << 40) | ((n2 & 0xFOO) << 24) | ((n2 & 0xFOOO) << 8) | ((n1 & 0xFF00) | ((n1 & 0xFF00) >> 16);
0
|
Модератор
8902 / 6672 / 917
Регистрация: 14.02.2011
Сообщений: 23,499
|
|
04.11.2013, 19:14 | 4 |
по моему
шестнадцатеричные цифры это 0 1 2 3 4 5 6 7 8 9 A B C D E F если изобретен другой алфавит просьба сообщить int какого размера? Добавлено через 2 минуты сдвинуть второе число влево на 16 разрядов,а не в право, и использовать оператор "ИЛИ"
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
04.11.2013, 19:41 | 5 |
Шестнадцатиричные цифры, как и числа, можно обозначить переменными: x,y H, G...
Ваш КО Начиная с 16 бит задача вполне корректна. А меньших интов вроде нет
0
|
Модератор
8902 / 6672 / 917
Регистрация: 14.02.2011
Сообщений: 23,499
|
|
04.11.2013, 19:54 | 6 |
КО объясни
ABCD это значения или переменные ???? почему нужно додумывать?
и это тоже где значения где переменные? разумеется long чему равен???? по стандарту он не меньше int 16 32 64????? поехали дальше Добавлено через 2 минуты это вот это то??? это ты для 16 бит на 56 сдвигаешь?
1
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||||||
04.11.2013, 20:08 | 7 | |||||
Везде переменные A,B,C,E,F,G,H - обозначают 16-ричные цифры
Я писал о корректности задания Мое решение корректно начиная с 32 бит. Я действительно ошибся со сдвигами в два раза, спасибо.
0
|
Модератор
8902 / 6672 / 917
Регистрация: 14.02.2011
Сообщений: 23,499
|
|||||||||||
04.11.2013, 20:54 | 8 | ||||||||||
вот так все это решается
поменять байты между собой (a<<8) | (a>>8) для 16 битного инта циклический сдвиг на 8 переменная должна быть обязательно unsigned при знаковой переменной при сдвиге вправо старший(знаковый) бит копируется а при беззнаковой в старших разрядах 0 итого вся функция выглядит так
вот который задан
0
|
castaway
|
04.11.2013, 21:41
#9
|
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
04.11.2013, 21:58 | 10 |
Никто не мешает цифру обозначить переменной.
При такой трактовке задача обретает вполне определенный смысл.
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
04.11.2013, 22:16 | 12 |
Уже почти правильно. Осталось внимательнее почитать условие. Двигаются не только байты, но и четверки битов.
Добавлено через 4 минуты Адресуйте Вашу рекомендацию преподавателю статртопика. Я всего лишь предположил, что задание давал не дурак.
0
|
Модератор
8902 / 6672 / 917
Регистрация: 14.02.2011
Сообщений: 23,499
|
||||||
04.11.2013, 22:34 | 13 | |||||
сомнительно, с таким ТЗ на любом предприятии был бы послан
четверки байтов называются полубайты
тебе по шагам расписать пожалуйста
0
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
04.11.2013, 22:49 | 14 |
Зачем же.
Проще попробовать программу в работе и исправить ошибку. Она, похоже, допущена вами по невнимательности. в восьмой строке последнего листинга. Добавлено через 9 минут А студенты небось еще и двойки получат, если не разгадают головоломку с условием
0
|
Модератор
8902 / 6672 / 917
Регистрация: 14.02.2011
Сообщений: 23,499
|
|
04.11.2013, 22:59 | 15 |
и в чем ошибка?
CD теряется а AB дублируется
Добавлено через 1 минуту вот это что ли 0xFF согласен косячек, клавиатура залипла а я внимания не обратил Добавлено через 1 минуту но изначально ты утверждал я показал что они двигаются а рабочую программу я и не собирался писать
0
|
04.11.2013, 22:59 | |
Помогаю со студенческими работами здесь
15
Поразрядные операции Поразрядные операции поразрядные операции Поразрядные операции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |