Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 21:02   #1
wagonwils
Новичок
Джуниор
 
Регистрация: 17.12.2009
Сообщений: 1
По умолчанию Помогите разобраться в коде не погу понять где ошибка

Задача такова "Назовем симметричным байт, в котором нулевой бит имеет такое же значение, что и седьмой, а первый – такое же, что и шестой. Изменить порядок следования симметричных байтов в числе на обратный."


вот код
Код:
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;

void print_as_binary(unsigned int num)
{
	cout << "Binary representation of " << num << " is ";

	unsigned int mask = 0x80000000;

	for(int i = 0; i < sizeof(num)*8; ++i)
	{
		cout << (bool)(num & mask);

		if ((i + 1)%8 == 0 && i != 0) cout << " ";

		mask >>= 1;
	}

	cout << endl;
}
bool test_bit (int n, int pos) // проверка бита на данной позиции
{
	if (pos < 0 || pos >= sizeof(int)*8)
	{
		pos=0;
	}
	return n & (1 << pos);
}
int set_bit(int n, int pos, bool bit) // устанавливает значение 1 или 0 на заданую позицию в данное число
{
	if(bit)
	{
		n = n | (1 << pos);
	}
	else
	{
		n = n & ~(1 << pos);
	}

	return n;
}
int swap_bits(int n, int pos1, int pos2) // меняет в числе два бита с задаными позициями
{
	bool	b1 = test_bit(n, pos1),
			b2 = test_bit(n, pos2);

	n = set_bit(n, pos1, b2);
	n = set_bit(n, pos2, b1);

	return n;
}
int bay (int n, int nom)
{
for (int i=0;i<4;i++)
{
	n =swap (n,i+(nom-1)*8,7-i+(nom-1)*8)
}
return n;
}



int main()
{
unsigned n;
srand((unsigned int)time(NULL));
n = rand();
print_as_binary(n);
for (int i=1;i<5;i++)
{
	n=bay (n,i);
}
print_as_binary(n);
не могу понять где ошибка
wagonwils вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите понять где ошибка !!! beliy13 Помощь студентам 2 12.12.2009 20:22
Не могу понять где ошибка в коде SeRhy Общие вопросы C/C++ 5 20.09.2009 13:10
помогити разобраться вчём ошибка в коде С++ Lorden Помощь студентам 2 02.02.2009 22:26
Где ошибка в моем коде? artemavd БД в Delphi 12 22.09.2008 14:28
Где ошибка в коде? Македонский Общие вопросы Delphi 16 10.09.2007 15:45