Đây là đoạn code mà em học được trong giáo trình đang học bên hàn.
nó dùng mask để in ra và dùng 32 bit làm tiêu chuẩn.( hạn chế là quá 32 bit là bay màu) mn cần tham khảo hay thắc mắc gì thì bình luận nhé. em vừa học hỏi vừa chia sẻ kiến thức ạ nếu sai nội quy thì gắn cờ em sẽ xoá bài ngay ạ.
#include <stdio.h>
void print_bit(int a){
int i;
int n = sizeof(int) * 8; // tạo 1 dãy 32 số
int mask = 1<< (n -1); // tạo 1 mặt nạ (1x0ffffffff) nghĩa là dịch chuyển số 1 sang trái 31 đơn vị nhé
for (i = 1; i <=n; ++i){
putchar(((a & mask) == 0) ? '0' : '1'); // so sánh bin của a và mák. dùng toán tử
a <<= 1;
if (i % 4 == 0 && i < n) // cứ 4 số là cách 1 cái cho dễ nhìn, có thể dùng 8 cho đỡ chối mắt
putchar(' ');
}
}
void main(){
int n;
printf("n = \n");
scanf("%d", &n);
print_bit(n);
printf("\n");
}
n =
9999999999999
0100 1110 0111 0010 1001 1111 1111 1111
Program ended with exit code: 1