十进制转格雷码 c语言,C语言输出格雷码
格雷码是以n位的二进制来表示数。
与普通的二进制表示不同的是,它要求相邻两个数字只能有1个数位不同。
首尾两个数字也要求只有1位之差。
有很多算法来生成格雷码。以下是较常见的一种:
从编码全0开始生成。
当产生第奇数个数时,只把当前数字最末位改变(0变1,1变0)
当产生第偶数个数时,先找到最右边的一个1,把它左边的数字改变。
用这个规则产生的4位格雷码序列如下:
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
#include
#include
#include
void change(char &ch) {
if (ch == '0')
ch = '1';
else
ch = '0';
}
int main() {
int n;
scanf("%d", &n); //输入需要转换的数
int size = log2(n) + 1; //计算所需位数
char *a = new char[size];
a[size] = ' ';
memset(a, '0', size); //初始化数组
for (int i = 0; i <= n; i++) {
if (i % 2)
change(a[size - 1]); //奇数改末尾
else
for (int j = size - 1; j > 0; j--) { //偶数操作
if (a[j] == '1') {
change(a[j - 1]);
break;
}
}
printf("%s
", a); //此行可去除
}
printf("result = %s
", a);
return 0;
}
十进制转格雷码 c语言,C语言输出格雷码相关推荐
- c语言输入字符串输出ASCLL码值并且输出十六进制
#include <stdio.h> #include <string.h> #include <stdlib.h>int main() {unsigned cha ...
- c语言输出字母A的ascii值,ascii是什么意思_C语言中如何输出ASCII码
描述 ASCII是AmericanStandardCodeforInformationInterchange的缩写,用来制订计算机中每个符号对应的代码,这也叫做计算机的内码(code). 1.ASCI ...
- 十进制数的原码 c语言,C语言程序设计第1章节(zmy).ppt
C语言程序设计第1章节(zmy).ppt 张茂元 副教授, 硕士生导师, 博士后 华中科技大学计算机学院 2007年2月;C语言程序设计-第1章 概论;1.1 学习C语言程序设计的第一个例子 ;例1. ...
- JavaGUI:多功能计算器(三)--AWT多语言定制(完整源码)
用Java实现多功能双语计算器v0.34 一.多语言界面简介: 1. 多语言的必要性: a. 按键上的文本串名称并非每个人都能立即理解,无论是英文还是中文都存在局限性,尤其不熟悉数学符号的情景:菜单项 ...
- 输入asc码输出字符c语言,输入一个字符输出ascii码
C语言 输入一个字母,输出与之对应的ASCII码,输入用C语言编写. #include "stdafx.h" //VS 预编译头文件,其他系统请删除 #include #inclu ...
- linux内核c语言笔试,C语言之linux内核--BCD码转二进制与二进制转BCD码(笔试经典)...
在分析代码之前,我们先来了解一下,BCD码和二进制到底区别在哪? 学习过计算机原理的和数字电子技术这两门课的都会知道这两个到底是什么含义,也有的同学学过了,考过了,过了一段时间又忘记了,今天,我们通过 ...
- 数据结构源码笔记(C语言描述)汇总
数据结构源码笔记(C语言):英文单词按字典序排序的基数排序 数据结构源码笔记(C语言):直接插入排序 数据结构源码笔记(C语言):直接选择排序 数据结构源码笔记(C语言):置换-选择算法 数据结构源码 ...
- 数据结构源码笔记(C语言):英文单词按字典序排序的基数排序
//实现英文单词按字典序排序的基数排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#defin ...
- 数据结构源码笔记(C语言):索引文件建立和查找
//实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...
- 数据结构源码笔记(C语言):快速排序
//实现快速排序算法 #include<stdio.h> #include<malloc.h> #define MAXE 20typedef int KeyType; type ...
最新文章
- 三次握手和四次挥手图解_图解 TCP 三次握手和四次挥手
- 一道简单的面试题:竟然有90%的程序员不能把这个算法完全写正确。。。
- 【Vue Laravel-mix】Error with Vue lazy loading components: “Failed to resolve async component“
- 用 Hasor 谈一谈MVC设计模式
- 二次修改:【练习题】构造方法的重载:Vehicles(交通工具)-Car(小汽车)和Truck(卡车)类继承于Vehicles类
- Cookie实现用户登录记住密码,实现自动登录
- DIV常用属性大全自己整理
- 识别波峰波谷算法_马丁普林格:波峰-波谷演进法
- zabbix监控特殊端口(8080,80,8009等)
- IDEA autowired校验关闭方法
- 网络之NSURLConnection
- NOI 2021 游记
- Ubuntu安装USB无线网卡驱动
- 触摸屏——S5PV210的触摸屏的理论与操作
- 安卓手机管理器_安卓如何看撤回的微信
- Arduino Pulsesensor脉搏心率的检测
- django之七(模型层ORM相关)
- MATLAB数组乘方
- canvas:绘制简单春联demo
- 数理统计之协方差矩阵