Đây là bài 1:
#include
#include
int main(void)
{
clrscr();
int n;
char a;
do{
do{
printf("\nEnter a decimal value (255
}while (n<255||n>65535);
printf("\nBinary: ");
//Che bit:
if (n&0x8000) printf("1"); else printf("0");
if (n&0x4000) printf("1"); else printf("0");
if (n&0x2000) printf("1"); else printf("0");
if (n&0x1000) printf("1"); else printf("0");
if (n&0x800) printf("1"); else printf("0");
if (n&0x400) printf("1"); else printf("0");
if (n&0x200) printf("1"); else printf("0");
if (n&0x100) printf("1"); else printf("0");
if (n&0x80) printf("1"); else printf("0");
if (n&0x40) printf("1"); else printf("0");
if (n&0x20) printf("1"); else printf("0");
if (n&0x10) printf("1"); else printf("0");
if (n&0x08) printf("1"); else printf("0");
if (n&0x04) printf("1"); else printf("0");
if (n&0x02) printf("1"); else printf("0");
if (n&0x01) printf("1"); else printf("0");
printf("\n\nDo you want to continue? (Y/N): ");
fflush(stdin);
scanf("%c",&a);
} while (a=='Y'||a=='y');
}
Bài 2
Hàm XOR:
#include
#include
int main(void)
{ clrscr();
int x,y,z;
printf("\n\n\n\n\t\t\t\tXOR - truth table");
printf("\n\n\t\t\t\tx\ty *\tz\n");
printf("\t\t\t\t******************\n");
for (x=0;x<=1;x++)
for (y=0;y<=1;y++)
{
z=(x&~y)|(~x&y);//z=x.not(y)+not(x).y
printf("\t\t\t\t%d\t%d *\t%d\n",x,y,z);
};
getch();
}
Hàm NXOR đây:
#include
#include
int main(void)
{ clrscr();
int x,y,z;
printf("\n\n\n\n\t\t\t\tNXOR - truth table");
printf("\n\n\t\t\t\tx\ty *\tz\n");
printf("\t\t\t\t******************\n");
for (x=0;x<=1;x++)
for (y=0;y<=1;y++)
{
z=~((x&~y)|(~x&y));//z=x.not(y)+not(x).y
z+=2;
printf("\t\t\t\t%d\t%d *\t%d\n",x,y,z);
};
getch();
}
Giống bài thầy cho mình thế, bạn học trường nào thế? những cái này mình cũng đang học. kakaka. ở hàm NXOR mình thấy lạ, viết theo công thức thì nó ra giá trị âm. thế là mình cộng thêm 2 vào cho hết âm.
Nhưng khi viết bằng hàm logic thì không vấn đề gì!