bate's blog

調べたこと実装したことなどを取りとめもなく書きます。

unsigned int を unsigned char 4つに

#include <stdio.h>
#include <stdlib.h>

int main()
{
	unsigned int input = 0;
	unsigned char bits[4] = {0};

	printf( "%u\n", 0xffffffff );
	//input = 4294967294;
	//input = 16777215;
	input = 4278255614;

	for( int i = 0; i < 4; ++i )
	{
		for( int j = 0; j < 8; ++j )
		{
			printf( "%d ", (4*(i*2)+j) );
		}
		printf("\n");
	}
	printf("\n");

	printf( "(" );
	for( int i = 0; i < 4; ++i )
	{
		for( int j = 0; j < 8; ++j )
		{
			if( input & ( 1 << (31-(4*(i*2)+j))) )
			{
				bits[i] += 1 << (7-j);
				printf( "1" );
			}
			else
			{
				bits[i] += 0 << (7-j);
				printf( "0" );
			}
		}
	}
	printf( "b)\n" );
	
	for( int i = 0; i < 4; ++i )
	{
		printf( "%d\n", bits[i] );
	}



	for( int k = 0; k < 4; ++k )
	{

	printf( "(" );
	for( int i = 0; i < 8; ++i )
	{
		if( bits[k] & (1<<(7-i)) )
			printf( "1" );
		else
			printf( "0" );
	}
	printf( "b)\n" );
	
	}

	return 0;
}