前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java异或什么意思_0与0异或

Java异或什么意思_0与0异或

作者头像
全栈程序员站长
发布于 2022-11-09 08:06:31
发布于 2022-11-09 08:06:31
1.3K0
举报

异或 ^ 的几个作用

一、交换两个整数的值而不必用第三个参数 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操作就是将a中的每一位按位逐一进行异或,例如a=4’b1010,则b=1^0^1^0=0,由此可以判断a中为1的位数是奇数还是偶数,是一个便捷的操作。

三、格雷码(Gray code)

格雷码(Gray code)是由贝尔实验室的Frank Gray在1940年提出,用于在PCM(Pusle Code Modulation)方法传送讯号时防止出错,并于1953年三月十七日取得美国专利。格雷码是一个数列集合,相邻两数间只有一个位元改变,为无权数码,且格雷码的顺序不是唯一的。 直接排列 以二进制为0值的格雷码为第零项,第一项改变最右边的位元,第二项改变右起第一个为1的位元的左边位元,第三、四项方法同第一、二项,如此反覆,即可排列出n个位元的格雷码。

1、自然二进制码转换成二进制格雷码   自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。

2、二进制格雷码转换成自然二进制码   二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。

二进制数转格雷码 (假设以二进制为0的值做为格雷码的0) 格雷码第n位 = 二进制码第(n+1)位+二进制码第n位。不必理会进制。

Verilog 代码:gray=(binary>>1)^binary;

格雷码转二进制数 二进制码第n位 = 二进制码第(n+1)位+格雷码第n位。因为二进制码和格雷码皆有相同位数,所以二进制码可从最高位的左边位元取0,以进行计算。

verilog 代码://——假设 reg [n-1] gray,binary;

integer i;

for(i=0;i<=n-1;i=i+1)

binary[i]= ^(gray>>i)//gray移位后,自身按位异或

放一段代码这,用于参考:

/*Logic to convert binary numbers into Gray coded binary numbers is implemented in the following Verilog Code. */ module binary2gray(); reg clk; reg rstn; reg [5:0] counter_binary, counter_binary_reg, counter_gray, counter_gray_reg; integer count, file_wr;

/* Initial block to generate clock and reset */ initial begin clk = 0; rstn = 0; #100 rstn = 1; forever begin #10 clk = !clk; end end

/* Synchronous Logic for registering the data and incrementing the counter for binary data */ always @ (posedge clk or negedge rstn) begin if (!rstn) begin counter_binary_reg <= ‘b0; counter_gray_reg <= ‘b0; end else begin counter_binary_reg <= counter_binary + 1; counter_gray_reg <= counter_gray; $display(“binary number= 6’b%b : gray en-coded binary number = 6’b%b”, counter_binary_reg, counter_gray_reg); end end

/* Logic is to get Gray code from Binary code */ function[5:0] binary2gray ; input[5:0] value; integer i; begin binary2gray[5] = value[5]; for (i=5; i>0; i = i – 1) binary2gray[i-1] = value[i] ^ value[i – 1]; end endfunction

/* Get gray encoded output */ always @(*) begin counter_gray = counter_gray_reg; counter_binary = counter_binary_reg; counter_gray = binary2gray(counter_binary_reg); end endmodule

四、奇数分频

奇数分频电路:

  奇数分频电路常用的是错位“异或”法的原理。如进行三分频,通过待分频时钟的上升沿触发计数器进行模三技术,当计数器计数到邻近值进行两次翻转。比如计数器在计数到1时,输出时钟进行翻转,计数到2时再进行翻转,即在邻近的1和2时刻进行两次翻转。这样实现的三分频占空比为1/3或2/3.如果要实现占空比为50%的三分频时钟,可通过待分频的时钟上升沿触发计数器和下降沿触发计数器进行三分频,然后将上升沿和下降沿产生的三分频时钟进行相或预算,即可得到占空比为50%的三分频时钟。

错位“异或”法推广:

  对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发的模N计数,计数到某一选定值时,进行输出时钟翻转,然后进过(N-1)/2再次进行翻转得到一个占空比非50%的技术分频时钟。再者同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同时,进行输出时钟翻转,同样经过(n-1)/2时,输出时钟再次翻转生成占空比非50%的奇数N分频时钟。两个占空比非50%的时钟相或运算,得到占空比为50%的奇数N分频时钟。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186024.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月4日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
0基础一篇文学会低代码开发会员管理小程序(四)
我们上篇介绍了会员充值记录功能的开发,通过数据源新增数组字段来保存充值记录信息,并介绍了云开发的数组操作方法。
低代码布道师
2021/07/08
5200
0基础一篇文学会低代码开发会员管理小程序(四)
0基础一篇文学会低代码开发会员管理小程序(六)
本实战教程是利用腾讯云微搭低代码,快速的搭建一款会员管理的小程序,方便商家日常通过小程序来管理会员。功能分为会员信息登记、充值、消费、发票及会员查询功能。历史文章目录如下:
低代码布道师
2021/07/08
7230
0基础一篇文学会低代码开发会员管理小程序(六)
0基础一篇文学会低代码开发会员管理小程序(一)
摘要:本文利用低代码技术,使用拖拽的方式快速开发一款会员管理系统,实现会员在线注册、充值、消费等功能。即使没有任何开发基础的小白,只要按照教程的步骤也可以掌握app的开发方法,进入到软件开发领域。
低代码布道师
2021/07/08
1.6K2
0基础一篇文学会低代码开发会员管理小程序(一)
0基础一篇文学会低代码开发会员管理小程序 (二)
我们在上一篇中实现了会员登记功能的开发,访问小程序可以看到会员登记的快捷图标,点击图标进入到登记页面,录入会员的基本信息点击提交即可保存会员的基本信息。
低代码布道师
2021/07/08
6460
0基础一篇文学会低代码开发会员管理小程序 (二)
0基础一篇文学会低代码开发会员管理小程序(三)
我们在上一篇实现了会员的充值记录功能,期间遇到一个BUG导致了新增功能都不好使,并进行了记录。
低代码布道师
2021/07/08
4080
0基础一篇文学会低代码开发会员管理小程序(三)
利用微搭低代码开发每周菜谱小程序(一)
既要求有前端开发技能,还得学习小程序的开发语言,如wxml、wxss等,框架、组件、api一套学习下来就感觉门槛很高了。
低代码布道师
2021/07/14
2K0
利用微搭低代码开发每周菜谱小程序(一)
利用低码技术快速创建一款发票小程序
日常生活中,我们总是需要收集各式各样的发票。而发票中最好用的无疑是餐饮发票,因为他在报销中没有比例限制,多多益善。
低代码布道师
2021/07/14
7830
利用低码技术快速创建一款发票小程序
会员管理小程序实战开发教程-消费记录功能
我们前边利用六篇篇幅介绍了会议管理小程序的各项功能,今天我们先复习一下我们已经完成的功能:
低代码布道师
2021/07/12
1.1K0
会员管理小程序实战开发教程-消费记录功能
培训报名小程序报名功能开发
在培训报名小程序中,我们已经开发了首页和列表页。在列表页点击报名时就跳转到报名页面,先看我们的原型
低代码布道师
2023/10/11
3230
用低代码开发简易的小程序技术教程
本次教程利用微搭低代码工具带着大家实现一款打卡小程序,小程序一共分为三个页面,分别是首页、签到页、签退页。
低代码布道师
2021/09/01
2.5K0
利用微搭低代码开发每周菜谱小程序
笔者一直是在政务赛道,给政府提供办公软件。因为去年甲方事业单位改革的原因,原来的负责人都转隶到了新的单位。现有的人员和机关事务服务中心合并,所以需要关注内部事务的业务,比如食堂、物业、停车、访客登记等业务。更换了业务方向后,由过去的解决公文流转、流程审批、信息报送等业务,转向到了内部管理业务。日常和客户沟通是免不了的,先看一下我们最近的一段沟通记录。
低代码布道师
2021/07/14
1.3K0
利用微搭低代码开发每周菜谱小程序
实战 | 0~1 自定义组件开发问卷小程序
本文将帮助您基于腾讯云微搭低代码 WeDa 平台,从0到1快速打造如下图所示的问卷调查小程序。
腾讯云开发TCB
2021/03/10
3.2K0
实战 | 0~1 自定义组件开发问卷小程序
会员管理小程序实战开发08-低码中操作数据库
<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
韩锴
2022/02/24
8280
会员管理小程序实战开发教程-会员信息删除
日常我们在记录会员信息的时候,随着会员信息的增多,有必要定期清理一些已经不来消费的顾客,那么小程序删除的功能是必备的。
低代码布道师
2021/07/15
2K0
会员管理小程序实战开发教程-会员信息删除
实战 | 0~1基于模板开发问卷小程序
本文将帮助您借助腾讯云微搭低代码 WeDa 平台,基于已有的模板快速打造出如下图所示的问卷调查小程序。
腾讯云开发TCB
2021/03/10
2.4K0
实战 | 0~1基于模板开发问卷小程序
最佳实战 | 如何使用微搭低代码基于模板开发小程序
本文将帮助您借助腾讯云微搭低代码平台,基于已有的模板快速打造出如下图所示的问卷调查小程序。
腾讯云开发TCB
2022/04/07
1.6K1
最佳实战 | 如何使用微搭低代码基于模板开发小程序
如何使用低代码搭建简易的信息查询系统
日常我们作为个人账户开通腾讯云微搭低码功能后,可以有两个应用的创建权限,那我们今天就充分利用这两个资源,打造一款属于自己的在线预约小程序。
腾讯云开发TCB
2021/03/16
2.6K0
如何使用低代码搭建简易的信息查询系统
使用微搭实现搜索功能
日常我们在使用互联网产品时,搜索是一种常见的功能,比如我们使用网上购物,在搜索框里输入商品的名称,APP即返回和输入关键词相匹配的商品,我们可以根据商品的购买量、评价、价格等因素来挑选自己需要的商品。
韩锴
2022/01/26
2.9K1
微搭低代码从入门到精通09-数据容器
微搭中还有粗粒度的组件,今天介绍的数据容器就是粗粒度的组件。所谓粗粒度的组件,一般包括基础组件、样式还有默认的事件。数据容器一共包含三种分别是数据列表、数据详情和表单容器。
低代码布道师
2023/02/16
5810
会员管理系统PC端教程(二)
我们要实现的效果是页面有查询条件,在查询条件下边有表格,可以显示多条的会员信息。这个时候就需要使用PC端的组件库了,点击组件菜单,切换到组件视图。
低代码布道师
2021/07/27
1.3K0
推荐阅读
相关推荐
0基础一篇文学会低代码开发会员管理小程序(四)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档