*1-4 OJ 605 格雷码
格雷码
- 题目描述
- 输入
- 输出
- 样例输入
- 样例输出
- 源代码
- 关于这题
题目描述
输入
输出
样例输入
样例输出
源代码
方法1
#include<iostream>
#include <bitset>
using namespace std;
int D2G(int x)
{return x ^ (x >> 1);
}int main(){int x;cin >> x;int y=D2G(x);int i, j = 0;int a[1000];i = y;while (i){a[j] = i % 2;i /= 2;j++;}for (i = j - 1; i >= 0; i--)cout << a[i];cout << endl;}
方法2
#include <stdio.h>
#include <string.h>
#include<iostream>
#include<stack>
using namespace std;
int main()
{int n;stack<int>q;while (cin >> n){int a[10000];int k = 0;int t = n;while (t > 0){q.push(t % 2);t /= 2;}while (!q.empty()){a[k++] = q.top();q.pop();}cout << a[0];for (int i = 1; i < k; i++){if (a[i - 1] == a[i]){cout << '0';}else{cout << '1';}}cout << endl;}return 0;
}
关于这题
第一种解题方法 较为简单 这里解释一下第一种方法
格雷码的实现 有很多办法 但其实只要两个操作,就能产生:一个是右移 一个是异或 这里都用D2G 函数来实现了
这个时候我们得到的y 已经是 格雷码的十进制数字 我们只需要将其转换成二进制即可
异或 ^
其实可以看作不进位的2进制加法 (或者总结为相同为0 不同为1)
1^0 1
0^1 1
0^0 0
1^1 0
*1-4 OJ 605 格雷码相关推荐
- 通信系统未编码、卷积码与格雷码的仿真性能比较
通信系统未编码.卷积码与格雷码的仿真性能比较 论文+代码+仿真结果:下载地址 以上仿真结果可知: 1.未编码.卷积编码和格雷码三种编码,经PSK调制后加AWGN(高斯白噪声),在经过解调和解码得出来的 ...
- 格雷码编码+解码+实现(Python)
01 二值码 02 格雷码编码 2.1 编码优点 2.2 编码生成 2.3 递归生成 2.4 二值码转换 2.5 编码图 03 格雷码投影 3.1 投影图案生成 3.2 DLP投影图像 04 格雷码解 ...
- 直播回顾|基于格雷码结合相移技术的高鲁棒性高效率动态三维面形测量
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间(bilibili号:3D视觉工坊:htt ...
- 重磅直播|基于格雷码结合相移技术的高鲁棒性高效率动态三维面形测量
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间,对3D视觉领域相关知识点进行讲解,并在微 ...
- 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)
目录 前言 二进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容,只是没有显式的 ...
- FPGA中有限状态机的状态编码采用格雷码还是独热码?
今天看<从算法设计到硬件逻辑的实现>这本电子书时,遇到了一个问题,就是有限状态机的编写中,状态编码是采用格雷码还是独热码呢?究竟采用哪一种编码呢? 采用独热码为什么节省许多组合电路? 等等 ...
- Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...
- 3位格雷码的顺序编码_FPGA 设计之 跨时钟域(四 - 格雷码)
上一篇文章总结了四种常用的多比特跨时钟域的设计.这篇我们主要来看一下 格雷码,文章目录如下: 什么是格雷码 格雷码转二进制码 二进制码转格雷码 N比特格雷码转N-1比特格雷码 什么是格雷码 ? A G ...
- 3位格雷码的顺序编码_绝对值编码器当中的格雷码
格雷码:又叫循环二进制码或反射二进制码.格雷码是我们在旋转编码器中常会遇到的一种编码方式. 格雷码的特点: 任意两个相邻的代码只有一位二进制数不同: 循环码,0和最大数(2^n-1)之间只有一位不同: ...
最新文章
- 判断参数对象是否为DBNULL
- 软件测试周记录之jmeter
- 复合五点高斯公式计算(Python实现)
- 【维纳滤波】通过MATLAB自带的维纳滤波函数进行滤波
- 设置Eclipse中的Courier New字体
- varchar 保存英文中文区别。
- 自控matlab设计,自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真
- slack通知本地服务器_通过构建自己的Slack App学习无服务器
- java中什么是task_20171018java总结——Spring任务调度task:scheduled-tasks
- excel如何把顺序倒过来_春节酒局多,这些葡萄酒倒酒礼仪你一定要知道
- [转]提高PR值的具体方法
- Vulnhub-HackInOS
- html中中文字体的代码
- java毕业设计彩妆销售网站Mybatis+系统+数据库+调试部署
- 机器人 李永禄_第八届中国青少年机器人竞赛名单
- 视频会议室装修部署指南
- matlab中asc格式,matlab将图片转换成asc码txt文本格式 | 学步园
- python 离群值_如何从Numpy数组中删除离群值
- springboot feign too many bytes written executing
- element-ui 上传图片后清空图片显示