美文网首页PHP
格雷码与十进制码的转换

格雷码与十进制码的转换

作者: ___n | 来源:发表于2018-01-23 10:02 被阅读772次

没有用php的位运算,效率会低些,算是完整的反映了转换规则, 基本上就是:格雷码 转成 二进制码 转成 十进制码

十进制码转格雷码

function decimal_to_gray($decimal){
    //$decimal = str_split((string)decdecimal($decimal));
    //先把十进制整形树字转换成二进制码
    $decimal = (string)decbin($decimal);
    $len = 4 - strlen($decimal);
    if($len > 0){
        for($i =0 ;$i< $len; $i++ ){
            $decimal = '0'.$decimal;
        }
    }
    $decimal = str_split($decimal);
    $gray = '';
    foreach($decimal as $k=>$v){
        if($k == 0){
            $gray .= $v;
        }else{
            $gray .= $decimal[$k-1] ^ (int)$v;
        }
    }
    return $gray;
}

格雷码转十进制码

function gary_to_decimal($gray){
    $gray = str_split((string)$gray);
    $decimal = '';
    $prev = 0;
    foreach($gray as $k=>$v){
        if($k == 0){
            $decimal .= $prev = $v;
        }else{
            $decimal .= $prev = (int)$v ^ $prev;
        }
    }
    //将获得的二进制码转换成十进制码
    return bindec($decimal);
}

相关文章

  • 格雷码与十进制码的转换

    没有用php的位运算,效率会低些,算是完整的反映了转换规则, 基本上就是:格雷码 转成 二进制码 转成 十进制码 ...

  • 汇编实验:格雷码转二进制(ASCII码)的实现和调试

    实验说明 格雷码和二进制的转换 思路 为完成实验内容,可通过查表和格雷码计算两种方式完成,此处使用格雷码直接计算得...

  • 格雷码与二进制之间的转换

    1 二进制转换为格雷码 module bin_to_gray(bin,gray); parameterSIZE =...

  • 第一模块: 开发基础(2)

    二进制 二进制与十进制之间的转换求342的二进制数 ASCII码 计算通过ASCII码将数字转换成文字 每一个0或...

  • 格雷码Graycode

    格雷码是什么见百度百科。 这是一个简单的递归问题:1.生成n+1位的格雷码:第一位不反转,递归生成n位的格雷码;然...

  • LeetCode 力扣 89. 格雷编码

    题目描述(中等难度) 生成 n 位格雷码,所谓格雷码,就是连续的两个数字,只有一个 bit 位不同。 解法一 动态...

  • Verilog——格雷码计数器

    - 格雷码(Gray code):​ 第一次接触格雷码是在本科的数电课本上,其在可靠性编码占据重要位置...

  • 十进制与BCD码转换的算法

    手头上在做的项目需要用到ds1302实时时钟,ds1302读出来的数据是BCD码,需要转换,写入也是。 BCD码 ...

  • 站在巨人的肩膀上:纳粹的最终灭亡

    波兰数学家马里安·雷杰夫斯基利用恩尼格码设计和使用的各种缺陷破解了商用恩尼格码。但是由于德国军方对恩尼格码设计和使...

  • 格雷码的生成

    题目描述 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code)...

网友评论

    本文标题:格雷码与十进制码的转换

    本文链接:https://www.haomeiwen.com/subject/ebnjaxtx.html