怎麼將十六進位制轉化為bcd碼,怎麼將十六進位制轉化為BCD碼

2021-03-25 05:34:03 字數 3055 閱讀 3772

1樓:向天致信

十六進位制數:3d2轉換成十進位制是978;

最後bcd碼是:1001 0111 1000。

在計算機中,資料是以0和1的二進位制方式來表示的。比如一個8位的二進位制數,就表示為 0001 0001,由於二進位制數用起來比較不方便,所以人們通常以16進位制的方式來表達,比如上述的00010001的16進製表示為0x11。

16進位制的0x11,如果用十進位制來表示的話,代表的數是16。

由於十進位制數是人們在日常生活中常用的資料表示方式。所以,想要顯示某個數的話,一般會轉化為十進位制裡顯示。

**首次判別資料是否是負數 ,如果是的話,顯示符號-。

然後看到,轉換是以除法和減法的方式來實現的。

2樓:匿名使用者

這是錯的,十六進位制數:3d2轉換成十進位制是978,最後bcd碼是:1001 0111 1000

3樓:紫月旭日

很簡單啊!比如:

這是一個16進位制的數:3d2

把3化為二進位制:011

把d化為二進位制:1101

把2化為二進位制:010

最後bcd碼就為:0111101010

4樓:匿名使用者

c#有一個自帶的轉換函式,好像是在bitconvert類

十六進位制轉化 bcd碼

5樓:匿名使用者

void hextobcd(u8 *pbuff,u8 len) //十六進位制

抄轉為bcd碼

}bcd碼就襲是用二進位制數來表示常用的十進位制數。

就是用四個位的二進位制來表示一個二進位制數。一個位元組一共有八個位,它就可以表示兩個bcd碼。比如,0fh等於二進位制物15,用一個位元組低四位來表示5,高四位來表示1合起來就是15h,不用轉換兩次的。

例如:63÷10=6……3

即商是6,餘數是

如果將商乘以16再加上餘數,就是:6×16+3=99,其16進位制數就是63h,即是十進位制數63(16進製為3fh)的bcd碼為63h。

如果在微控制器中,程式這麼寫:char hex,bcd;bcd=(hex/10*16)+(hex%10);

其中hex儲存十六進位制數,bcd中儲存的就是其bcd碼。

6樓:匿名使用者

借下bai回答最好的例子,假du設16進位制數3fh,轉化為zhi10進位制數為63,如果直接dao

問63的bcd碼是多少,(bcd碼是用版4個位權

表示0~9)做法如下6的bcd碼為0110,3的bcd碼為0011,兩個一組合為01100011轉化為10進製為99,(就是將十進位制每個位的數用bcd碼錶示),6*16的原因是為了將6往前移動4位。再舉個例子16進位制數adh,其轉化為十進位制為173,其bcd碼1*16*16+7*16+3=371,程式話應該很好實現,一個while迴圈就能搞定

7樓:匿名使用者

我舉抄個例子吧,你程式設計的時候照著這方法來就沒錯了:

假設16進位制數3fh,其十進位制數值為3*16+15=63,所以先進行如下過程:

63÷10=6……3

即商是6,餘數是

如果將商乘以16再加上餘數,就是:

6×16+3=99,其16進位制數就是63h,即是十進位制數63(16進製為3fh)的bcd碼為63h。

如果在微控制器中,程式這麼寫:

char hex,bcd;

bcd=(hex/10*16)+(hex%10);

其中hex儲存十六進位制數,bcd中儲存的就是其bcd碼。

bcd碼如何轉換成十六進位制數

8樓:南瓜蘋果

bcd碼與十進位制數的轉換關係很直觀,相互轉換也很簡單。

將十進位制數75.4轉換為bcd碼:7-》0111,5-》0101,4-》0100所以拼成8421bcd碼的結果是:

(0111 0101.0100)bcd;若將bcd碼1000 0101.0101轉換為十進位制數:

1000-》8,0101-》5,0101-》5所以結果是:(85.5)。

注意:同一個8位二進位制**表示的數,當認為它表示的是二進位制數和認為它表示的是二進位制編碼的十進位制數時,數值是不相同的。

擴充套件資料

看資料的**和用途。bcd碼一般用於輸入和輸出,例如來自撥碼開關的資料是bcd碼,送給顯示電梯樓層的譯碼器晶片的是bcd碼。

8421 bcd碼是最基本和最常用的bcd碼,它和四位自然二進位制碼相似,各位的權值為8、4、2、1,故稱為有權bcd碼。和四位自然二進位制碼不同的是,它只選用了四位二進位制碼中前10組**,即用0000~1001分別代表它所對應的十進位制數,餘下的六組**不用。

bcd碼用十六進位制格式輸入,其最高位(符號位為16#f(2#1111)。bcd碼的低3位各位只能是0~9,如果是16#a~16#f則會出錯。 計數器的預設值pv是0~999的bcd碼,可以用格式為c#的常數(c#1~c#999)作為計數器的預設值。

9樓:糖糖又笑了

先將bcd碼轉換為十進位制,然後在再轉換成十六進位制

8421 bcd碼是最基本和最常用的bcd碼,它和四位自然二進位制碼相似,各位的權值為8、4、2、1,故稱為有權bcd碼。和四位自然二進位制碼不同的是,它只選用了四位二進位制碼中前10組**,即用0000~1001分別代表它所對應的十進位制數,餘下的六組**不用。

10樓:匿名使用者

對於bcd碼每四位代表一個十進位制數字0-9,可以將bcd碼轉化為十進位制,然後再將十進位制轉化為十六進位制。

下面是以8421bcd碼為例編寫的vc++6.0程式**:

#include

#include

#include

using namespace std;

int convertstringtoint(string s)void main()

num=num*10+temp2;

}cout<<"十進位制"<

cout<<"十六進位制"<

} 如果不會編譯源**,可以把郵箱寫出來,我給你發程式。

十進位制轉化為十六進位制怎麼算十六進位制轉換成十進位制的具體演算法?

十進位制轉化為十六進位制計算方式,簡單說就是整數除以16取餘,直到商為0為止,然後從最後一個餘數讀到第一個 十六進位制轉化為十進位制計算方式,按權 相加即得十進位制數。十進位制轉化為十六進位制 include stdio.h int main printf 請輸入一個十進位制數 scanf d nu...

二進位制如何如何轉化為八進位制,十六進位制,我知道轉到8進位制需要數轉為,但是為什麼100對應的

很簡單因為二進位制逢2進1,而八進位制逢8進1,所以二進位制 000 八進位制0,二進位制001 八進位制1,二進位制010 八進位制2,二進位制011 八進位制3,二進位制100 八進位制4,二進位制101 八進位制5,二進位制110 八進位制6,二進位制111 八進位制7,二進位制1000 八進...

請問二進位制轉化為十六進位制時,小數點後面怎麼算?比如,1011麻

小數點後面的進位制轉換採用估值,一般手算是這樣的 十進位制轉二進位制,將小數點後的數單獨拿出來 就是去掉前面的整數部分為零 然後乘2,取結果的整數部分,再取結果的小數部分乘2,再取整數部分,以此類推,除非是1 2的整數次,否則可以一直往下算,不過一般是取三位或四位有效數字,按照最後結果,從上到下取每...