题目
汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。
16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。
一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。
把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,
一共16行,布局是:
第1字节,第2字节
第3字节,第4字节
....
第31字节, 第32字节
思路:
就是核心一个bitset容器,自动转换成二进制,然后再把二进制数转换成字符串逐一判断,是1就输出墨迹,否则输出空格、
#include<iostream>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
string b1,b2;//设置一个字符串,用来存储八个位的数据
while(cin>>n>>m)//输入两个字节
{
bitset<8>b(n);//二进制有序集,设置大小是8,将n字节放入
string b1=b.to_string();//转换成字符串,方便逐一判断
for(int i=0;i<b1.length();i++)
{
if(b1[i]=='1')
printf("*");//一就要输出墨迹
else
printf(" ");
}
bitset<8>a(m);//同理
string b2=a.to_string();
for(int i=0;i<b2.length();i++)
{
if(b2[i]=='1')
printf("*");
else
printf(" ");
}
cout<<endl;//输入完两字节后要换行,输入下两个字节
}
return 0;
}