找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6248|回復(fù): 16
收起左側(cè)

各位大佬,這個(gè)二進(jìn)制轉(zhuǎn)16進(jìn)制為什么要除16?

  [復(fù)制鏈接]
ID:696335 發(fā)表于 2020-3-12 10:24 | 顯示全部樓層 |閱讀模式
DisplayData[0] = smgduan[IrValue[2]/16];
DisplayData[1] = smgduan[IrValue[2]%16];
回復(fù)

使用道具 舉報(bào)

ID:89217 發(fā)表于 2020-3-12 13:11 | 顯示全部樓層
10進(jìn)制 轉(zhuǎn)16進(jìn)制 你這個(gè)還是分開存儲(chǔ),方便顯示 應(yīng)該是液晶屏要用的數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

ID:452950 發(fā)表于 2020-3-12 14:31 | 顯示全部樓層
這個(gè)不是二進(jìn)制轉(zhuǎn)16進(jìn)制,IrValue[2]應(yīng)該已經(jīng)是16進(jìn)制了。猜測(cè)是兩位的16進(jìn)制數(shù),IrValue[2]/16意思是取IrValue[2]的高位,IrValue[2]%16意思是取IrValue[2]的低位,smgduan[]是另一個(gè)數(shù)組,作用是將IrValue[2]的高低位作為編號(hào)分別對(duì)應(yīng)smgduan[]中的一個(gè)數(shù)。最后將這個(gè)數(shù)放入DisplayData[]中。
回復(fù)

使用道具 舉報(bào)

ID:282850 發(fā)表于 2020-3-12 14:50 | 顯示全部樓層
除16是按16進(jìn)制拆位時(shí)丟個(gè)位。常用的是/10,%10,按10進(jìn)制拆出個(gè)、十、百、千位。
0x1C(十進(jìn)28)%10---->8
0x1C(十進(jìn)28)/10--->2丟8
回復(fù)

使用道具 舉報(bào)

ID:696335 發(fā)表于 2020-3-12 15:35 | 顯示全部樓層
xxpp2011 發(fā)表于 2020-3-12 14:31
這個(gè)不是二進(jìn)制轉(zhuǎn)16進(jìn)制,IrValue[2]應(yīng)該已經(jīng)是16進(jìn)制了。猜測(cè)是兩位的16進(jìn)制數(shù),IrValue[2]/16意思是取IrV ...

是16進(jìn)制,我看錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:696335 發(fā)表于 2020-3-12 15:59 | 顯示全部樓層
xxpp2011 發(fā)表于 2020-3-12 14:31
這個(gè)不是二進(jìn)制轉(zhuǎn)16進(jìn)制,IrValue[2]應(yīng)該已經(jīng)是16進(jìn)制了。猜測(cè)是兩位的16進(jìn)制數(shù),IrValue[2]/16意思是取IrV ...

請(qǐng)問(wèn)IrValue[2]/16為什么是取IrValue[2]的高位,IrValue[2]%16為什么是取IrValue[2]的低位?
回復(fù)

使用道具 舉報(bào)

ID:692997 發(fā)表于 2020-3-12 16:21 | 顯示全部樓層
四位二進(jìn)制 構(gòu)成一位16進(jìn)制
回復(fù)

使用道具 舉報(bào)

ID:692997 發(fā)表于 2020-3-12 16:22 | 顯示全部樓層
10進(jìn)制轉(zhuǎn)16才除16取余
回復(fù)

使用道具 舉報(bào)

ID:696335 發(fā)表于 2020-3-12 17:06 | 顯示全部樓層
f556 發(fā)表于 2020-3-12 14:50
除16是按16進(jìn)制拆位時(shí)丟個(gè)位。常用的是/10,%10,按10進(jìn)制拆出個(gè)、十、百、千位。
0x1C(十進(jìn)28)%10----> ...

但是程序里是/16和%16呀,這個(gè)怎么弄啊?
回復(fù)

使用道具 舉報(bào)

ID:452950 發(fā)表于 2020-3-12 17:13 | 顯示全部樓層
臭大死王八羔子 發(fā)表于 2020-3-12 15:59
請(qǐng)問(wèn)IrValue[2]/16為什么是取IrValue[2]的高位,IrValue[2]%16為什么是取IrValue[2]的低位?

IrValue[2]/16意思是除以16后取整,假設(shè)IrValue[2]為0X23,因?yàn)?6進(jìn)制的第二位是2×16^1,所以除以16就相當(dāng)于將高位右移一位到低位,原來(lái)的低位是3x16^0,除以16后就成小數(shù)被舍去了,所以得到的就是一位16進(jìn)制數(shù)2;
IrValue[2]%16意思是除以16后取余,取的是除以16剩下的余數(shù)3,得到一位16進(jìn)制數(shù)3。
同理從8進(jìn)制,10進(jìn)制里面取出某一位也是類似的做法,比方說(shuō)三位數(shù)123取中間的十位數(shù)就是(123%100)/10,意思是123除以100取余數(shù)23再除以10取整數(shù)得到2。

回復(fù)

使用道具 舉報(bào)

ID:696335 發(fā)表于 2020-3-13 09:34 | 顯示全部樓層
xxpp2011 發(fā)表于 2020-3-12 17:13
IrValue[2]/16意思是除以16后取整,假設(shè)IrValue[2]為0X23,因?yàn)?6進(jìn)制的第二位是2×16^1,所以除以16就相 ...

謝謝大佬
回復(fù)

使用道具 舉報(bào)

ID:707498 發(fā)表于 2020-3-13 10:30 | 顯示全部樓層
四位二進(jìn)制 構(gòu)成一位16進(jìn)制
回復(fù)

使用道具 舉報(bào)

ID:707661 發(fā)表于 2020-3-13 14:56 | 顯示全部樓層
DisplayData[0] = smgduan[IrValue[2]/16];////除16 取除數(shù)是取16進(jìn)制的高位
DisplayData[1] = smgduan[IrValue[2]%16];////16 取余是取16進(jìn)制低位
smgduan應(yīng)該是數(shù)碼管的真值映射表。
DisplayData 這個(gè)數(shù)據(jù)是直接顯示驅(qū)動(dòng)硬件IO的。
多位數(shù)碼管16進(jìn)制顯示紅外按鍵值。
回復(fù)

使用道具 舉報(bào)

ID:707798 發(fā)表于 2020-3-13 16:51 | 顯示全部樓層
每4位二進(jìn)制看成一位16進(jìn)制
回復(fù)

使用道具 舉報(bào)

ID:707888 發(fā)表于 2020-3-13 19:20 | 顯示全部樓層
四位二進(jìn)制 構(gòu)成一位16進(jìn)制哈哈
回復(fù)

使用道具 舉報(bào)

ID:707931 發(fā)表于 2020-3-13 20:06 | 顯示全部樓層
前面得到的就是一位16進(jìn)制數(shù)2,這就是分開來(lái)算
回復(fù)

使用道具 舉報(bào)

ID:701297 發(fā)表于 2020-3-13 21:52 | 顯示全部樓層
二的四次方,四位二進(jìn)制,構(gòu)成一位16進(jìn)制
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表