![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Имеется некоторое число, мне требуется в 1-й и 16-й его разряды установить по 1-це, независимо от того, что там было ранее.. например, p=11 0001 1101 1010 нужно получить p=1011 0001 1101 1011 вот так пробовала с 1-м разрядом:
в итоге чем бы не было р, оно становится равным temp, т.е. 0х1.. и ещё..как быть с 16-тым разрядом? Объясните пожалуйста.. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Ой..перепутала.. Поэтому я предпочитаю использовать сокращенную запись, компилятор не даст тебе перепутать... Цитата в итоге ничего не изменилось.. Почему не обращаешь внимание на Warning-и? Компилятор же тебя должен был предупредить, что "Integer arithmetic overflow"? Сразу понятно, что число в результате превышает допустимые рамки, а значит, маска слишком большая. Понятно, куда копать. Или ты отключила отображение Warning-ов? Ну, тогда пожинай плоды...Твоя маска слишком велика для unsigned int... Не путай двоичную и 16-ричную системы счисления. В 16-ричной каждая цифра представляется четырьмя битами. Если тебе надо маску 1000 0000 0000 00012, то это соответственно 800116 = 0x8001 // p = 6907 |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 9:21 |