【组成原理】BYTE ME!
题目描述
If even parity is being used, each byte will have an even number of 1 characters. If odd parity is being used, each byte will have an odd number of 1 characters.
In this problem, we are looking for a single bit that has been corrupted. To help you find it, the last byte is not part of the data being transmitted, but is a parity byte. Each bit of the parity byte will be used to make the corresponding bits in the data bytes odd or even depending on the parity being used.
输入
There will be one further line of 8 characters (again 1 or 0) which will be the parity byte.In the parity byte, each bit is a parity bit for the corresponding bits in the preceding N lines, using the same parity as is used by the data bytes. The parity byte itself may not show the same parity as the data bytes.
输出
Line 1: Either the word Even or the word Odd to describe the parity being used by the bytes which are not broken.
Line 2: Byte <number> is broken
Line 3: Bit <number> is broken
<number> is the number of the appropriate byte or bit, where the first of each is number 1.
样例输入
3
1 0 1 0 1 1 1 0
1 1 0 1 1 1 0 0
1 0 1 1 1 0 0 0
0 0 1 1 1 1 0 1
样例输出
Odd
Byte 3 is broken
Bit 5 is broken
提示
Bytes 1 and 2 have an odd number of 1s but byte 3 has an even number. So odd parity is being used but byte 3 is broken.
The parity byte gives all columns of bits an odd number of 1s except for 5 where they are even, so bit 5 is broken. Bit 5 of byte 3 is corrupt.
【题解】:
很难得遇到一道组成原理为背景的题目了,深感欣慰,觉得这个题目有必要记录一下。
首先判断:奇数还是偶数判别法
其次判断那一个字节出现了问题。
最后判别哪一位上出现问题。
#include<bits/stdc++.h>
using namespace std;
const int N = ;
int a[N][N];
int s[N],n;
int row[N],col[N];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) for(int j=;j<=;j++)
scanf("%d",&a[i][j]),row[i]+=a[i][j],col[j] += a[i][j] ; for(int i=;i<=;i++)
scanf("%d",&s[i]),col[i]+=s[i]; int OE = , Odd = ,Even = ;
for(int i=;i<=n;i++){
if( row[i]& ) Odd ++ ;
else Even ++ ;
}
if( Odd == n- ) OE = ;
if( Even == n- ) OE = ;
//Ans 1
if( OE& ){
puts("Odd");
}else{
puts("Even");
} //Ans 2
for(int i=;i<=n;i++){
if( (OE & ) && (row[i]%==) ){
printf("Byte %d is broken\n",i);break;
}else if( (OE%==) && (row[i]&) ){
printf("Byte %d is broken\n",i);break;
}
} //Ans 3
for(int j=;j<=;j++){
if( (OE & ) && (col[j]%==) ){
printf("Bit %d is broken\n",j);break;
}else if( (OE%==) && (col[j]&) ){
printf("Bit %d is broken\n",j);break;
}
} return ;
}
【组成原理】BYTE ME!的更多相关文章
- weblogic漏洞总结 复现(未完)
复现方式 Docker复现 WEBlogic爆出了很多漏洞 先了解一下现在主流的版本 Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.1 Web ...
- 计算机存储负数以及int转byte时-128的出现
我们看下面这段代码 输出的结果的是128,这个没什么疑问 但是当我们不改变数值仅仅加了一个强制转换后 这时我们会发现结果会变成负的128.这时候我们就要怀疑了,为什么会出现这样的结果呢? 对于这个问题 ...
- Java中基本数据类型byte,short,char,int,long,float,double 取值范围
部分内容转自:java 彻底理解 byte char short int float long double 首先说byte: 这段是摘自jdk中 Byte.java中的源代码: /** * A co ...
- java 彻底理解 byte char short int float long double
遇到过很多关于 数值类型范围的问题了,在这做一个总结,我们可以从多方面理解不同数值类型的所能表示的数值范围 在这里我们只谈论 java中的数值类型 首先说byte: 这段是摘自jdk中 Byte.ja ...
- C#基础蛋疼到爆的Byte类型表数范围之网兜毛衣见解……
事实上写这篇对Byte类型表数范围的文章,真的是蛋疼+蛋疼+蛋疼,每每看到Byte表数范围这一块.都对-128如此的陌生与迷茫.操蛋的Byte,操蛋的人生-- 熊孩子出场:Byte 恶作剧结果:表数范 ...
- 详解计算机中的Byte、bit、字、字长、字节
最近突然有同事问我,关于计算机中的计量单位大B和小b的区别,以及KB到GB之间的换算问题,我当时觉得这问题简单,大B是 byte,小b是bit,但是想到他俩之间的换算时,一时有些想不起来具体是1Byt ...
- go语言:多个[]byte数组合并成一个[]byte
场景:在开发中,要将多个[]byte数组合并成一个[]byte,初步实现思路如下: 1.获取多个[]byte长度 2.构造一个二维码数组 3.循环将[]byte拷贝到二维数组中 package gst ...
- Android-Drawable、Bitmap、byte[]、资源文件相互转换
我们在Android的开发中,经常可以遇到图片的处理,当中,有很多是 Bitmap.Drawable.byte[]和资源文件它们直接相互转换. 今天就此总结一下: 1.资源文件转为Drawable 2 ...
- byte[] 转成图片方法
/// <summary> /// ImageData 的摘要说明 /// </summary> public class ImageData : IHttpHandler { ...
随机推荐
- 【Golang】基于录制,自动生成go test接口自动化用例
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...
- ntp时间同步服务器的搭建
CentOS系统一般自带安装有ntp服务,仅需做相关配置即可. 一.配置ntp服务器: 在选定的ntp服务器上vim /etc/ntp.conf 添加一行:restrict default nomod ...
- 微信小程序倒计时的方法
timeOut: function(time) { var that = this; var end = new Date(time).getTime(); var Interval = setInt ...
- JMeter首金网自营项目-转义及数据库数据乱码的解决
param的string参数: 需要对”进行转义,加/ { "prdCreditInfo": { "revision": 0, "maxCredit& ...
- 进程 | 线程 | 当Linux多线程遭遇Linux多进程
背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[<Unix环境高级编程>第3版] 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分 ...
- 实时流Streaming大数据:Storm,Spark和Samza
当前有许多分布式计算系统能够实时处理大数据,这篇文章是对Apache的三个框架进行比较,试图提供一个快速的高屋建瓴地异同性总结. Apache Storm 在Storm中,你设计的实时计算图称为top ...
- windows7安装docker异常:looks like something went wrong in step ‘looking for vboxmanage.exe’
一.背景 最近准备抽点时间研究下docker,选择在家中的windows系统上安装. 我的系统是windows7,首先安装Docker Toolbox,Docker Toolbox是一个工具集,主要包 ...
- spring 使用@Valid校验数据出错DEBUG org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod - Failed to resolve argument 0 of type
问题原因:在 @Valid 的那个参数后面紧跟着一个 BindingResult 的参数(一定要紧跟着) 参考来源:https://segmentfault.com/q/101000000838468 ...
- Crontab的格式说明
第1列分钟1-59第2列小时1-23(0表示子夜)第3列日1-31第4列月1-12第5列星期0-6(0表示星期天)第6列要运行的命令 下面是crontab的格式:分 时 日 月 星期 要运行的命令 这 ...
- Hackertarget:一款发现攻击面的工具
前言 https://github.com/ismailtasdelen/hackertarget 代码 主要通过这家公司提供的API查询相关数据实现的功能,API看起来可以用很久. #!/usr/b ...