首页 > 其他分享 >逻辑运算与按位运算

逻辑运算与按位运算

时间:2022-09-24 11:48:40浏览次数:76  
标签:格雷 逻辑运算 运算 二进制 异或 按位

Verilog语法中的运算有逻辑运算和按位运算两种:

逻辑运算:把多位操作数视为1位,多位中有1就视为1,否则视为0 ,其结果为 0 / 1 / x 三种 。

按位运算:对应的每一位分别求xx ,结果仍为多位数 。

如:(按位:a & b ;逐位:& a)

|:或门运算 (按位求或) ;

||:逻辑或运算 ;

&:与门运算 (按位求与) ;

&& :逻辑与运算 ;

~:非门运算(按位求反) ;

!:逻辑求反 ; 

^:按位异或 ;(a^b对应位异或;^a则是a的每一位按位逐一进行异或:如a= 3‘b101,则 ^a = 1 ^ 0 ^ 1 = 0)

~(^):按位同或 ;

 

注意:

①位宽不同的数按位运算,低位宽的未定义位自动补0 ;

 

异或的作用:(参考:异或 ^ 的几个作用 - dangg - 博客园 (cnblogs.com)

交换两个数a,b的数值::a=a^b; b=b^a; a=a^b;  

如:

a = 9;
b = 11;
a=a^b; 1001^1011=0010
b=b^a; 1011^0010=1001
a=a^b;  0010^1001=1011
a = 11;
b = 9;

判定一个数a中1的个数奇偶:^a (结果为0,则偶,否则为奇)

如a=4'b1010,则b=1^0^1^0=0

格雷码与二进制转换

格雷码:一个数列集合,相邻两数间只有一个位元改变,为无权数码,且格雷码的顺序不是唯一的。

Ⅰ.二进制转格雷码:最高位保留,次高位与次次高位异或得次高位,以此类推。

 

实现:gray=(binary>>1)^binary

Ⅱ.格雷码转二进制:最高位保留,二进制高一位于格雷码低一位异或得到二进制低一位。(见图)

实现://------假设 reg [n-1] gray,binary;

             integer i;              for(i=0;i<=n-1;i=i+1)               binary[i]= ^(gray>>i)//gray移位后,自身按位异或

 

标签:格雷,逻辑运算,运算,二进制,异或,按位
From: https://www.cnblogs.com/fbur/p/16725017.html

相关文章

  • JS数据类型及运算符
     一.数据类型js的数据类型分为原始型数据类型和引用型类型原始类型分为数值型、字符串型、布尔型、未定义型、空​1、数值型常见数字​浮点型1.232.343.1415e1=>31.41......
  • 位运算符:原码、反码、补码
    位移(涉及到二进制中的原码,反码,补码)⭐必记↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓:对于有符号的数而言,有以下几点1.二进制的最高位是符号位:0表示正数,1表示负数(区别......
  • 4.运算符表达式和语句
    =数据对象:泛指数据在内存的存储区域左值:表示可以被更改的数据对象右值:能赋给左值的量+:加intx=10+10;printf("%d\n",x);//20-:减intx=10......
  • lua:三元运算符
    lua里面没有类似C++的三元运算符a?b:c。第一种实现if-else--三元运算符functioniif(condition,a,b)ifconditionthenreturnaelser......
  • 位运算
    目录二进制算法二进制转十进制十进制转二进制位运算概念位与&位或|异或^按位取反~左移<<右移>>位算法实践2的幂4的幂二进制"1"的个数交换数字只出现一次的数字汉明距离交替......
  • 二进制和位运算,以及进制的转换
      有些语言用0b111来表示二进制数111。但至少C没有二进制常数表示方法,高版本的编译器支持0b表示二进制数例子:intnum1=210;//十进制intnum2=01010;//......
  • 9.16-17四则运算2
     packagetemomomomo;importjava.util.Random;importjava.util.Scanner;publicclasssizeyunsuan2{  staticScannerin=newScanner(System.in);//一定要......
  • 变量的命名规范 运算符
    变量的命名规范所有变量,方法,类名:都要做到见名知意类成员变量:首字母小写和驼峰原则:例如monthSalarylastName除了第一个单词后面单词首字母大写局部变量:首字母小写和驼......
  • 003 逻辑运算的高级用法
    [A]可选链(?.)场景:1. 开发中,我们经常使用obj.name的方式区获取对象的属性2.而我们又无法保证obj本身一定存在,若obj为null,undefined,以及obj......
  • php两个问号??表示什么意思,PHP两个问号运算符,双问号表达式
    说在php源代码中看到有两个问号??不知道是什么意思。其实两个问题??是php7新推出的表达式,c=a??b;表示如果a非空,则c=a,如果a为空,则c=b;  php7以前经常使......