汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。

16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。

一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。
把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,
一共16行,布局是:

第1字节,第2字节
    第3字节,第4字节
    ....
    第31字节, 第32字节

这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。

题目的要求隐藏在这些信息中。你的任务是复原这些汉字的字形,从中看出题目的要求,并根据要求填写答案。

这段信息是(一共10个汉字):
4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 
16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 
4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 
0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4 
4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64 
16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128 
0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0 
2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0 
1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0 
0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0

注意:需要提交的是一个整数,不要填写任何多余内容。

主要思路:这道题将所有的数字转换为二进制,再将判断每个数字的二进制的每一位是0还是1判断输出空格还是*号

这10个汉字的意思是  九的九次方等于多少?,答案是一个整数387 420 489;

简单介绍一下

在c++中

1<<2
1的二进制是00000001
“<<”意思是将二进制编码向左移动2位并将空位补0
即00000001转化为00000100=4
同理
“1>>n”为将二进制码向右移动n位

在C/C++语言里,&代表取地址或者“位与”运算
1、取变量的地址:&变量名,这将获得该变量的地址,例:int a = 1, &p = a。
2、进行位与运算,格式是:变量1&变量2,进行计算时,将会把类型提升为int。
“位与”运算是“位运算”的一种,运算法则是在二进制数下,相同位的两个数字都为1,则为1;若有一个不为1,则为0。&运算通常用于二进制取位操作,例如一个数 & 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。
再举个例子,6的二进制是110,11的二进制是1011,那么6 & 11(也可以表达为6 and 11)的结果就是二进制的10,即十进制的2。

6 (10) 是0000 0110(2)

11(10) 是0000 1011(2)

结果 是0000 0010(2)

也就 是 2 (10)

#include<iostream>
using namespace std;
int main()
//仔细分析题目的这句话   一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。//把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节, //还有认真研究题目给的输入样例,并根据输入样例设计程序是解决本题的主要思路
{int t=10,i,s[20],n,m,r,b;while(t--)//输出10个汉字 {r=16;//代表每个汉字有16行输入的数据,每行有2个字节的数据,//观察发现每行有32个数据,所以每个字节要输入16个数据 while(r--){cin>>n>>m;for(i=7;i>=0;i--)//比如第一个数字是4 ,它的二进制是00000100//下列步骤为将n转换为二进制数字并存储在s数组的s[0]---s[7]//因为 b=n&1;这个操作是将个位的数字逆序存储到s数组里的,所以i从7递减//这样输出数据就可以保证按照顺序输出 0000 0100 {b=n&1;//在二进制的情况下n和1的个位是否相同,若相同返回1,否则返回0 (这里是将n转换为二进制)n=n>>1;//在二进制的情况下将n向右移动1位if(b==1)s[i]=b;else //这里是b==0的情况, s[i]=b;}for(i=15;i>7;i--)//比如第二个数字是0 ,它的二进制是00000000{b=m&1;//在二进制的情况下n和1的个位是否相同,若相同返回1,否则返回0 (这里是将n转换为二进制)m=m>>1;//在二进制的情况下将向右移动1位if(b==1)s[i]=b;//从s[15]---到s[8]存储的全部是0 else s[i]=b;}for(i=0;i<16;i++){if(s[i]==1) cout<<".";else cout<<" ";}//再把二进制转换为空格或者*号输出 cout<<endl;}}//本题值得学习的内容是如何将数字转换为二进制数并输出,以下为值得读者深入思考的内容
//  b=n&1;在二进制的情况下n和1的个位是否相同,若相同返回1,否则返回0 (这里是将n转换为二进制)//          n=n>>1;//在二进制的情况下将n向右移动1位} 

第九届蓝桥杯 明码2018相关推荐

  1. 2018第九届蓝桥杯大赛软件类B组C/C++省赛题解

    2018第九届蓝桥杯大赛软件类B组C/C++省赛目录 试题 A:第几天(结果填空) 试题 B:明码(结果填空) 试题 C:乘积尾0(结果填空) 试题 D:测试次数(结果填空) 试题 E:快速排序(结果 ...

  2. 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题

    大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...

  3. 2018省赛第九届蓝桥杯真题C语言B组第十题题解 乘积最大

    2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:乘积最大 给定N个整数A1, A2, ... AN.请你从中选出K个数,使其乘积最大.   请你求出最大的乘积,由于乘积可能超出整型范围,你只 ...

  4. 2018省赛第九届蓝桥杯真题C语言B组第五题题解 快速排序

    2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:快速排序. 以下代码可以从数组a[]中找出第k小的元素. 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的. 请仔细阅读分析源码, ...

  5. 2018省赛第九届蓝桥杯真题C语言B第四题题解 测试次数

    2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机 ...

  6. 2018省赛第九届蓝桥杯真题C语言B组第九题题解 全球变暖

    2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:全球变暖 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: ....... ...

  7. 2018省赛第九届蓝桥杯真题C语言B组第八题题解 日志统计

    2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在t ...

  8. 2018省赛第九届蓝桥杯真题C语言B组第六题题解 递增三元组

    2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:递增三元组 给定三个整数数组 A = [A1, A2, ... AN],  B = [B1, B2, ... BN],  C = [C1, C ...

  9. 关于2018年第九届蓝桥杯省赛(江苏赛区)

    为啥到现在才写呢...就是懒,是真的懒.题也没刷几个 (下面题目的超链接转自这里,并不是本人解法..只是因为有题目还有题解) 4.1举行的蓝桥杯也可以说是"愚人杯"了 早早的跟同学 ...

最新文章

  1. adc0808温度换算公式_adc0808模数转换电路图及程序
  2. 2022还在使用Mysql进行数据检索?ElasticSearch自定义扩展词库完成检索
  3. 参加51CTO组织的2013云计算架构师大会
  4. 云端的ABAP Restful服务开发
  5. Jquery 中的CheckBox、 RadioButton、 DropDownList的取值赋值
  6. 23种设计模式(九)对象创建之原型模式
  7. get函数和getline函数
  8. 设置JAVA-HOME的用处
  9. 二叉树的层次遍历算法
  10. 罗斯蒙特流量计指示故障的原因
  11. matlab 电磁场工具箱,基于MATLAB软件的电磁场的可视化研究.doc
  12. 反甩锅成功后思考——RST 报文
  13. python 学习笔记18 GFPGAN人脸(图片)修复
  14. 常见文件mime类型
  15. 微信在线客服功能开发问题记录
  16. 爱看广场舞的老爷爷的笔记---ifconfig命令无法使用
  17. STM32_FOC_4_如何获得Park变换中的θ角-即电机的电角度_Plus
  18. 张孝祥java高新技术笔记_张孝祥Java高新技术_课程--------学习笔记第一天
  19. 关于 c 打印异常的问题
  20. 风火轮编程Python第一阶段课程检测评估单

热门文章

  1. 自学python能找到工作吗-通过自学python能找到工作吗
  2. python常用代码总结-常见的排序算法的总结及python代码实现
  3. php和python-Python与PHP的一些区别
  4. 怒拒Facebook:语音识别大神、Kaldi之父将加盟小米
  5. 亚马逊首席科学家:揭秘 Alexa 语音识别技术|AI NEXT
  6. 艾媒2018年度手机输入法报告出炉:百度输入法是语音识别最准的输入法
  7. 高职考计算机基础知识,高职计算机基础及应用教程
  8. 【数据结构算法】图解prime算法和Kruskal算法(最短路径问题)
  9. 最简单的基于DirectShow的示例:视频播放器自定义版
  10. 视频质量,分辨率,码率之间的关系 2