bcd碼16進(jìn)制對照表 BCD碼如何轉(zhuǎn)換成十六進(jìn)制數(shù)?
BCD碼如何轉(zhuǎn)換成十六進(jìn)制數(shù)?BCD碼是最基本、最常用的BCD碼。它類似于四位自然二進(jìn)制代碼。每一位的權(quán)值為8、4、2和1,因此稱為加權(quán)BCD碼。與四位自然二進(jìn)制碼不同,它只選擇四位二進(jìn)制碼中的前10
BCD碼如何轉(zhuǎn)換成十六進(jìn)制數(shù)?
BCD碼是最基本、最常用的BCD碼。它類似于四位自然二進(jìn)制代碼。每一位的權(quán)值為8、4、2和1,因此稱為加權(quán)BCD碼。與四位自然二進(jìn)制碼不同,它只選擇四位二進(jìn)制碼中的前10組碼,即0000~1001代表其對應(yīng)的十進(jìn)制數(shù),其余6組碼不使用。
16的BCD碼是怎么算?
BCD代碼實際上使用二進(jìn)制與十進(jìn)制代碼相對應(yīng)。3位二進(jìn)制只能代表8位,4位16位,會有6個以上的代碼,這給我們帶來了一些運算空間。
8421代碼
對應(yīng)的二進(jìn)制代碼11的值,可以直接計算
5421代碼
數(shù)字的權(quán)重是5,4,2,1。編碼的優(yōu)點是最高位權(quán)值是5,這樣將減少的位數(shù)0~9分為2,后面的5~9可以表示為0(1~4),優(yōu)點與算盤一樣:直觀。
2421碼
數(shù)字權(quán)值是2,4,2,1。兩位數(shù)有2會有問題,比如0101和1011對應(yīng)5。故規(guī)定0101~1010不使用。2421代碼的優(yōu)點是它補充了9,所以我們需要理解二進(jìn)制操作。簡單理解:它為操作提供了方便。
其余三位代碼
它涉及進(jìn)位問題,十進(jìn)制兩位數(shù)字相加,進(jìn)位用8421代碼計算,如果進(jìn)位之和小于16就不會產(chǎn)生。所以想辦法把8421碼全部加3,這樣再加6,就從十進(jìn)制映射到十六進(jìn)制,讓進(jìn)位正常發(fā)生。
格雷碼
格雷碼的核心思想是:兩個相鄰的數(shù)字之間只有一個位的變化。假設(shè)你有一個7檔電風(fēng)扇,使用三個機械開關(guān)來控制,你只需要在兩個相鄰的檔位之間切換一次開關(guān)。如果是421代碼,當(dāng)您從3檔(011)撥到4檔(100)時,需要關(guān)閉兩個開關(guān)并打開一個開關(guān)三次。格雷碼的設(shè)計可以達(dá)到最小的步進(jìn)成本。
關(guān)于bcd碼和十六進(jìn)制數(shù)的區(qū)別?
十六進(jìn)制數(shù)沒有h,0-9,a,B,C,D,e,f(10-15)0-9 0000 0001 0010 0011 0100 0101 0111 1000 1001a-f 1010 1011 1100 1101 1110 1111一般來說,十六進(jìn)制數(shù)的表示可以在數(shù)字的右下角用16或h來表示,但用C表示語言中,將數(shù)字0和數(shù)字前面的字母X相加表示,即0 X。例如,12af在C語言中表示為0x12af。BCD碼是二進(jìn)制編碼十進(jìn)制的全稱,是指以四個二進(jìn)制數(shù)表示的一位BCD碼和以一個字節(jié)表示的兩位BCD碼,稱為壓縮BCD碼。BCD碼有四位,而字節(jié)有八位。如果在一個字節(jié)中放入兩個BCD碼,則稱為壓縮BCD碼。而一個字節(jié)只放一個BCD碼,高位0,稱為非壓縮BCD碼。4ah 01001010被轉(zhuǎn)換成十進(jìn)制數(shù)4*16^1 10*16^0=74,1*2^6 1*2^3 1*2^1=744ah和74h都是十六進(jìn)制數(shù)
有一個問題,我們必須首先驗證16位二進(jìn)制數(shù)是有符號的還是無符號的?這個問題影響到電路的具體設(shè)計,因為需要一個除法器,關(guān)于除法器的設(shè)計要搜索,最簡單的就是原代碼的加減交叉除法器。R有一個除法器,然后轉(zhuǎn)換開始。第一個BCD碼是將16位二進(jìn)制數(shù)除以10,然后取余數(shù)的低位4位。 2,將最后一個除法運算的商除以10,取余數(shù)的低4位,得到第二個BCD碼。以此類推,直到商小于10,除法就完成了。一個16位二進(jìn)制可以表示的最大數(shù)是65535,所以你需要做5個除法運算。結(jié)果是5個20位BCD碼。因為您只顯示兩個BCD,所以將高12位信號與或門連接作為溢出信號,并將其輸出到BCD代碼led。當(dāng)溢出信號為1時,LED顯示e,表示錯誤。R說了很久,想起你可能在說的軟件實現(xiàn)。其實,基本過程差不多,就是分工。至于如何壓縮BCD碼,可以將代表高位的BCD碼乘以16或左移4位,然后對代表低位的BCD碼進(jìn)行逐位或運算,得到壓縮后的BCD碼。R如何在軟件中顯示BCD代碼?我們要設(shè)計一個解碼模塊,首先將壓縮后的BCD碼擴展到8位,過程與上述相反。在此基礎(chǔ)上,通過位運算或00110000運算得到BCD碼的ASCII碼。我給你舉個例子。編程時,按這個方法是對的:假設(shè)十六進(jìn)制數(shù)3fh的十進(jìn)制值為3*16 15=63,則先進(jìn)行如下處理:63△10=6 3表示商為6,余數(shù)為商乘以16,余數(shù)為:6×16 3=99,十六進(jìn)制數(shù)為63h,也就是說,十進(jìn)制數(shù)63(十六進(jìn)制是3fh)的BCD代碼是63h。
如果程序按如下方式編寫:char hex,BCD;BCD=(hex/10*16)(hex ),其中hex存儲十六進(jìn)制數(shù),BCD存儲其BCD代碼。