求一个数的格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。 (此描述来自百度)
下面将用java代码来打印某个数的 gray 码。
/*
功能:求一个数的 gray 码
输入:随机输入一个数字
输出:这个数的 gray 码
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("输入一个数字:");
int num = input.nextInt();
int b = (int)(Math.log(num)/Math.log(2)); // gray 码的位数为b+1 位
System.out.print("这个数的Gray码为:");
for( ; b>=0; b--){ //从高位到低位,每循环一次,输出一位
int d = (int)Math.pow(2,b);
if(num >= Math.pow(2,b)){
num = d-1-(num-d);
System.out.print(1);
}else{
System.out.print(0);
}
}
}
}
最后
以上就是畅快发箍最近收集整理的关于求一个数的格雷码的全部内容,更多相关求一个数内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复