![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Дано целое неотрицательное число. Произвести в его двоичном представлении обмен битов с номерами 0 и 1, 2 и 3, 4 и 5 и так далее.
Объясните пожалуйста, каким способом нужно производить обмен? Как это вообще будет выглядеть? Сообщение отредактировано: 18192123 - 14.05.2007 21:44 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вроде вот так должно быть...
#include <stdio.h>
int main() {
int i, f;
unsigned int n = 0xA7; // То, что надо сконвертировать
unsigned int b[4] = {0, 2, 1, 3};
for(i = 0; i < 8*sizeof(int); i += 2) {
f = (n >> i) & 3;
n = (n & (~(3 << i))) | (b[f] << i);
}
printf("n = %u\n", n);
return 0;
}
|
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вроде вот так должно быть...
unsigned int b[4] = {0, 2, 1, 3};
for(i = 0; i < 8*sizeof(int); i += 2) {
f = (n >> i) & 3;
n = (n & (~(3 << i))) | (b[f] << i);
Объясни пожалуйста, для чего мы используем массив b? И что происходит в следующих 3-х строках (я не смогла разобраться в этом....) |
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 9:15 |