Code:
#include <stdio.h>
#include <conio.h>
union test1
{
unsigned int i;
struct
{
unsigned char b0:1;
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
unsigned char b8:1;
unsigned char b9:1;
unsigned char b10:1;
unsigned char b11:1;
unsigned char b12:1;
unsigned char b13:1;
unsigned char b14:1;
unsigned char b15:1;
unsigned char b16:1;
unsigned char b17:1;
unsigned char b18:1;
unsigned char b19:1;
unsigned char b20:1;
unsigned char b21:1;
unsigned char b22:1;
unsigned char b23:1;
unsigned char b24:1;
unsigned char b25:1;
unsigned char b26:1;
unsigned char b27:1;
unsigned char b28:1;
unsigned char b29:1;
unsigned char b30:1;
unsigned char b31:1;
}BIT;
};
void main()
{
test1 u;
printf("Nhap so can chuyen:");
scanf("%i",&u.i);
printf("\n");
printf("%d",u.BIT.b0);
printf("%d",u.BIT.b1);
printf("%d",u.BIT.b2);
printf("%d",u.BIT.b3);
printf("%d",u.BIT.b4);
printf("%d",u.BIT.b5);
printf("%d",u.BIT.b6);
printf("%d",u.BIT.b7);
printf("%d",u.BIT.b8);
printf("%d",u.BIT.b9);
printf("%d",u.BIT.b10);
printf("%d",u.BIT.b11);
printf("%d",u.BIT.b12);
printf("%d",u.BIT.b13);
printf("%d",u.BIT.b14);
printf("%d",u.BIT.b15);
printf("%d",u.BIT.b16);
printf("%d",u.BIT.b17);
printf("%d",u.BIT.b18);
printf("%d",u.BIT.b19);
printf("%d",u.BIT.b20);
printf("%d",u.BIT.b21);
printf("%d",u.BIT.b22);
printf("%d",u.BIT.b23);
printf("%d",u.BIT.b24);
printf("%d",u.BIT.b25);
printf("%d",u.BIT.b26);
printf("%d",u.BIT.b27);
printf("%d",u.BIT.b28);
printf("%d",u.BIT.b29);
printf("%d",u.BIT.b30);
printf("%d",u.BIT.b31);
_getch();
}
-Code này mình nghĩ là hơi dở, mình sẽ tìm cách hay sau.
.
- À, cái này sau khi chuyển thành dạng nhị phân bạn đọc dãy từ phải sang trái nhé.
-Ví dụ:
Chương trình sẽ chuyển 8 thành 00010000000000000000000000000000 nghĩa là 1000. Chương trình mình hiện chỉ chuyển được các số nguyên không dấu 32bit thôi. Nghĩa là các số < 2^32-1.
Thân,