久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 格雷碼與二進(jìn)制轉(zhuǎn)換 學(xué)習(xí)所得 [打印本頁]

作者: jackduan2018    時間: 2025-2-14 08:22
標(biāo)題: 格雷碼與二進(jìn)制轉(zhuǎn)換 學(xué)習(xí)所得
這個程序格雷碼轉(zhuǎn)二進(jìn)制的部分當(dāng)時沒看明白,總覺得和二進(jìn)制轉(zhuǎn)格雷碼的代碼功能一樣。
其實沒看明白while(x>>1)這條語句的功能。
這條語句是把x按位右移1位,直到x值為0時跳出循環(huán)。

#include“STC15W4K.H”
#include<stdio.h>                                             /*為使用printf函數(shù)而加入*/
unsigned long decimaltogray(unsigned long x)      //自然二進(jìn)制碼轉(zhuǎn)換成格雷碼
{
  return x^(x>>1);
}

unsigned long graytodecimal(unsigned long x)      //格雷碼轉(zhuǎn)換成二進(jìn)制
{
  unsigned long y= x;
  while(x>>=1)
  {
    y^=x;
  }
  return y;
}

viod main()
{
  unsigned long i,x,y;
  TI=1;                                      //軟件調(diào)試的串行窗口與波特率無關(guān),只要TI=1即可
  for(i=0;i <1000;i++)
  {
    x=decimaltogray(i);
    printf("格雷碼:%1d",x);
   
    y=graytodecimal(x);
    printf("十進(jìn)制:%1d\n",y);
  }
  while(1);
}


以十進(jìn)制8(二進(jìn)制1000)為例進(jìn)行程序中的運算過程演示:
二進(jìn)制轉(zhuǎn)換成格雷碼:
1000>>1  =0100;
1000^0100=1100;
計算結(jié)束,計算結(jié)果為1100,即8的格雷碼為:1100。

格雷碼轉(zhuǎn)換成二進(jìn)制:
1100>>1=0110;
1100^0110=1010;
y=1010,x=0110;

0110>>1=0011;
1010^0011=1001;
y=1001,x=0011;

0011>>1=0001;
1001^0001=1000;
y=1000,x=0001;

0001>>1=0;
x=0;
跳出while()函數(shù)。

計算結(jié)束,計算結(jié)果為y=1000,即格雷碼1100轉(zhuǎn)換為二進(jìn)制1000。

程序雖小,看不明白還是看不明白,看不明白的就要弄明白,再小也得弄明白,否則到處都時不明白。





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 黄色成人免费视频 | 国产福利一区二区三区 | 国产精品一区在线播放 | 午夜大片| 人人爱av| 91精品国自产在线观看 | 国产欧美综合一区二区三区 | 国产在线日韩 | 久久久综合视频 | www.伊人网 | 久草福利在线 | 黄色在线免费网站 | 欧美日韩黄色片 | 日本精品视频在线 | 干干干操操操 | 97超碰资源站 | 国产一区在线看 | 一本一道久久a久久精品蜜桃 | 丰满岳乱妇一区二区 | 国产成人一区二区三区 | 福利片在线观看 | 国产剧情一区 | 日本综合久久 | 亚洲免费在线视频 | 日韩精品福利 | 国产精品一区二区在线免费观看 | 色爱天堂| 亚洲图片一区二区 | 永久免费av网站 | 免费国产视频 | 狠狠做深爱婷婷久久综合一区 | 2025国产精品 | 日韩色综合 | 亚洲成av| 国产乱码一区二区三区 | 国产精品一区在线播放 | 美女一级片 | 国产一级在线视频 | 久久精品欧美一区二区 | 日本国产一区 | a在线免费观看 |