点阵字符

题目描述

点阵字符是计算机系统存储、显示文字字型信息的一种方式,其中每个字型(字母、数字、标点符号等)都以一组二维像素信息表示,文字笔画经过的区域存储为1,否则存储为0 。

点阵数据的优点是处理和显示速度快,目前点阵字符数据常用于LED、液晶等显示设备。 由于二进制表示点阵字符数据比较繁琐,通常点阵字符都用16进制表示。 

以8×16的ASCII字符为例,16个字节可以表示一个点阵字符的字型信息。

输入

16个字节的点阵字型信息。其中:每个字节占一行,为16进制格式

输出

对应的8×16的字符(提示:二进制位代码中的0对应输出两个小数点,1对应输出两个大写字母X)

样例输入

00
00
10
38
6C
C6
C6
FE
C6
C6
C6
C6
00
00
00
00

样例输出

................
................
......XX........
....XXXXXX......
..XXXX..XXXX....
XXXX......XXXX..
XXXX......XXXX..
XXXXXXXXXXXXXX..
XXXX......XXXX..
XXXX......XXXX..
XXXX......XXXX..
XXXX......XXXX..
................
................
................
................
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cctype>
using namespace std;
const int M = 8+5;
int a[M][2*M];
int ctd(char c){//函数作用:将单个字符类型的十六进制转换为十进制,返回整形 
	if(isdigit(c))
		return c-'0';
	else
		return c-'A'+10;
}
void htb(char c1,char c2,int i){//函数作用:字符类型的十六进制转换为整形的二进制存在数组a当中 
	int d1,d2;
	d1=ctd(c1);
	d2=ctd(c2);
	for(int j=4;j>=1;j--){
		a[i][j]=d1%2;
		d1/=2;
		a[i][j+4]=d2%2;
		d2/=2;
	}
}
void print(){//函数作用:根据数组a当中存放的二进制来输出点阵字符 
	for(int i=1;i<=16;i++){
		for(int j=1;j<=8;j++){
			if(a[i][j]==1)
				cout<<"XX";
			else
				cout<<"..";
		}
		cout<<endl;
	}
}
int main(){
	for(int i=1;i<=16;i++){
		char c1,c2;
		cin>>c1>>c2;//以字符的方式读取各位十六进制 
		htb(c1,c2,i);//用自定义函数将十六进制转换为二进制 
	}
	print();//用自定义函数进行输出 
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值