首页 > 其他分享 >牛客网VL3 奇偶校验

牛客网VL3 奇偶校验

时间:2024-11-25 21:32:58浏览次数:12  
标签:偶数 奇数 bus 奇偶校验 牛客 异或 VL3 sel check

1.检测一个长比特的中1的奇偶个数时可以使用按位的的异或;

异或使用符号^,比较前后两个比特相异为零,相同为一。

例如:^3'b110 = 0; (1^1^0=0)表示有偶数个1

           ^3'b100 = 1;(1^0^0= 1)则表示有奇数个1

1001

所以当对一个完整的比特进行异或时,为零则有偶数个1,为一则有奇数个1。

2.三目运算符“?”(其中a可以是变量,也可以是逻辑表达式(看a是不是等于0))

d = a ? b : c 

等价于

if(a = true)

        d = b;

else

        d = c;

 

3.当sel想输入为1时,要进行奇校验,所以bus[]加上check(校验位)一共1的个数要为奇数个,所以先通过异或运算运算出bus[]是有奇数个1还是偶数个1,如果有奇数个1那么check为0,就可以保证有奇数个1,则成功进行了奇校验;如果bus[]有偶数个1,那么再加上一个1,就变成奇数个1了,所以给^bus[]取反赋值给check就可以满足条件了。进行偶校验反之亦然。

`timescale 1ns/1ns
module odd_sel(
input [31:0] bus,
input sel,
output check
);
//*************code***********//
assign sel1 = ^bus;
assign check =sel ?  sel1 : ~sel1;
//*************code***********//
endmodule

标签:偶数,奇数,bus,奇偶校验,牛客,异或,VL3,sel,check
From: https://blog.csdn.net/2301_79755889/article/details/144008699

相关文章

  • 牛客周赛 Round 69
    题解赛时做题A入门题等差数列,找公差,构造第三个即可B题意简单,考察字符串转化成数字C几何题,大概初中难度,用全等或者向量都可以(初做时废了半天劲,果然上了大学就废了赛后补题D纯暴力,但是可以收获的有两点将二维转化成一维处理bitset的使用和二进制操作__builtin_popco......
  • 【牛客训练记录】牛客周赛 Round 69
    训练情况赛后反思好吧,D题没想到二进制枚举,以为\(O(2^knm)\)不可做。。。A题要求要等差数列,我们先求公差,为两元素的最大值-最小值,再在最大值的基础上加上公差即可。#include<bits/stdc++.h>//#defineintlonglong#defineendl'\n'usingnamespacestd;voidsol......
  • 牛客小白月赛105 补题
    Blz的数字问题链接:B-lz的数字问题_牛客小白月赛105思路:多列举测试用例,考虑完整。首先判断是整数还是小数,小数分整数和小数两部分判断(函数调用最方便!)。注意有<小数的小数部分不够六位>的情况看个错误代码:tip(注释里):1.判断整数和小数应遍历整个数组,若出现".",则为小数,否则相反。......
  • 牛客周赛 Round 69(A~E)
    https://ac.nowcoder.com/acm/contest/96115#question真难过,一个小时竟然做不出F。没想到F是线段树的变式,我还想开7,8个树状数组进行维护,直接秀逗了。要做大物作业,先丢个题解吧A.构造C的歪#include<iostream>#include<queue>#include<map>#include<set>#include<vector>#in......
  • 牛客面试必刷TOP101之链表专项
    个人主页:C++忠实粉丝欢迎点赞......
  • [题解](更新中)[test06]2024/11/23 模拟赛 / 2023牛客OI赛前集训营-提高组(第三场) A~C
    原题页面:https://ac.nowcoder.com/acm/contest/65194Statements&Solution:https://www.luogu.com.cn/problem/U507978\(80+80+50+24=234\)。A贪心+双指针。根据贪心思想,大值选大、小值选小。我们按绝对值从大到小给\(a\)排序,再按从小到大给\(b\)排序,取双指针\(l=1,r=m\)......
  • 牛客小白月赛105 C,D,E题解
    题目链接:C题本来想用搜索,发现不行后还是分类讨论了,我在原来的图形上加了一圈'x'方便判断,里面的搜索可要可不要。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;lllo=1e9+7,maxx=0,l,r,t;chara[4][250500];llmod=1e9+7;lln,m,k,z,b[500050]={0};/......
  • 【牛客训练记录】牛客小白月赛105
    训练情况赛后反思看十佳歌手去了,比较晚回来,只开了A题,B题不看数据范围直接一眼丁真直接WA了一发A题两个数相乘进行比较,再判断即可。#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;voidsolve(){inta1,b1,a2,b2;cin>>a1>>......
  • 每日OJ题_牛客_AB20走迷宫_BFS_C++_Java
    目录牛客_AB20走迷宫_BFS题目解析C++代码Java代码牛客_AB20走迷宫_BFS走迷宫_牛客题霸_牛客网(nowcoder.com)描述:        给定一个n×m的网格,在网格中每次在不超过边界的情况下可以选择向上、向下、向左、向右移动一格。网格中的一些格子上放置有障碍物,放有......
  • C - sum(牛客小白月赛102)
    题目链接:C-sum题目描述:示例说明:解:这题典型的贪心问题,是求最小的操作次数。首先我们可以先算出这n个数的和s,s和sum的大小有三种情况。当s=sum时,一个数字也不用修改,答案为0。而剩下的两种情况可以合为一种情况来做。首先我们要知道如果把这n个数都变为相反数,则s也会变为......