Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
01.05.2014
Размер:
1.66 Кб
Скачать
#include "stdio.h"

typedef union utBits
		{
			unsigned int ax:8;
			struct 
			{
				unsigned a0:1;
				unsigned a1:1;
				unsigned a2:1;
				unsigned a3:1;
				unsigned a4:1;
				unsigned a5:1;
				unsigned a6:1;
				unsigned a7:1;
			} bits;
		} TBits;

typedef union
		{
			int ax:16;
			struct
			{
				unsigned int ll:8;
				unsigned int hh:8;
			} bytes;
		} TBytes;

void printfbinary(int x)
{
	TBytes bx;
	TBits bbx;
	bx.ax=x;
	bbx.ax=bx.bytes.hh;;
	printf("%d%d%d%d%d%d%d%d ",bbx.bits.a7,bbx.bits.a6,bbx.bits.a5,bbx.bits.a4,bbx.bits.a3,bbx.bits.a2,bbx.bits.a1,bbx.bits.a0);
	bbx.ax=bx.bytes.ll;
	printf("%d%d%d%d%d%d%d%d",bbx.bits.a7,bbx.bits.a6,bbx.bits.a5,bbx.bits.a4,bbx.bits.a3,bbx.bits.a2,bbx.bits.a1,bbx.bits.a0);
};

void cshl(int *ax,int y)
{
	TBytes bax;
	TBits bah,bal;
	bax.ax=*ax;
	bah.ax=bax.bytes.hh;
	bal.ax=bax.bytes.ll;
	unsigned _t;
	for(int i=0;i<y;i++)
	{
		_t=bah.bits.a7;
		bah.bits.a7=bah.bits.a6;
		bah.bits.a6=bah.bits.a5;
		bah.bits.a5=bah.bits.a4;
		bah.bits.a4=bah.bits.a3;
		bah.bits.a3=bah.bits.a2;
		bah.bits.a2=bah.bits.a1;
		bah.bits.a1=bah.bits.a0;
		bah.bits.a0=bal.bits.a7;
		bal.bits.a7=bal.bits.a6;
		bal.bits.a6=bal.bits.a5;
		bal.bits.a5=bal.bits.a4;
		bal.bits.a4=bal.bits.a3;
		bal.bits.a3=bal.bits.a2;
		bal.bits.a2=bal.bits.a1;
		bal.bits.a1=bal.bits.a0;
		bal.bits.a0=_t;
	};
	bax.bytes.hh=bah.ax;
	bax.bytes.ll=bal.ax;
	*ax=bax.ax;
};
int main(void)
{
	int x;
	x=32767;
	printf("%d = ",x);
	printfbinary(x);
	cshl(&x,16);
	printf("\n After using cshl(x,y) \n");
	printfbinary(x);
	printf(" = %d \n",x);
	return 0;
};
Соседние файлы в папке Лабораторная работа №13