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

QQ登錄

只需一步,快速開始

搜索
查看: 2630|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

如何十進(jìn)制轉(zhuǎn)十六進(jìn)制?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我制作了幾個(gè)時(shí)鐘,DS1203,PGS,都分別制作成功了,現(xiàn)在想結(jié)合一下,想制作DS1203走時(shí),GPS校準(zhǔn)的時(shí)鐘,發(fā)現(xiàn)得到時(shí)間是,DS1203是十六進(jìn)制的,GPS是十進(jìn)制,折騰了幾天都沒有做好,思想枯竭,哪個(gè)高手給個(gè)思路,說明一下,本人C語(yǔ)言只能看個(gè)大概,會(huì)點(diǎn)匯編,拜托!拜托!高手,先在這里謝謝了!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2024-4-7 18:07 | 只看該作者
假設(shè)字符串gps[]從第5個(gè)字節(jié)開始是hhmmss

hour=(gps[5]-'0')*10+gps[6]-'0';
minute=(gps[7]-'0')*10+gps[8]-'0';
second=(gps[9]-'0')*10+gps[10]-'0';
回復(fù)

使用道具 舉報(bào)

板凳
ID:1080935 發(fā)表于 2024-4-7 18:15 | 只看該作者
是DS1302吧,查下十進(jìn)制轉(zhuǎn)BCD子程序可以直接用。其實(shí)就是把GPS的十進(jìn)制對(duì)10取余數(shù)作為個(gè)位(低四位),然后原數(shù)除10再對(duì)10取余作為十位(高四位,原數(shù)據(jù)不大于99的話不取余也可,就是原數(shù)除10,商做高四位,余數(shù)做低四位),時(shí)鐘8位夠用了。
回復(fù)

使用道具 舉報(bào)

地板
ID:69038 發(fā)表于 2024-4-7 18:52 | 只看該作者
24轉(zhuǎn)0x24(數(shù)字轉(zhuǎn)換):
(24/10)*16+24%10  ; //===>0x14
24轉(zhuǎn)16進(jìn)制(數(shù)值變換):
24/16+24%16   ;        //===>0x18
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2024-4-7 19:02 | 只看該作者
//BCD碼轉(zhuǎn)十進(jìn)制函數(shù)
unsigned char BCD_D(unsigned char bcd)
{
        return ((bcd>>4)*10)+(bcd & 0x0f);
}
//十進(jìn)制轉(zhuǎn)BCD碼函數(shù)
unsigned char D_BCD(unsigned char Dec)
{
        return (Dec/10*16+Dec%10);
}
回復(fù)

使用道具 舉報(bào)

6#
ID:883242 發(fā)表于 2024-4-8 07:57 | 只看該作者
zhuls 發(fā)表于 2024-4-7 18:52
24轉(zhuǎn)0x24(數(shù)字轉(zhuǎn)換):
(24/10)*16+24%10  ; //===>0x14
24轉(zhuǎn)16進(jìn)制(數(shù)值變換):

你查下NMEA0183格式,人家是ASCII字符串!
回復(fù)

使用道具 舉報(bào)

7#
ID:1117741 發(fā)表于 2024-4-23 14:52 | 只看該作者
在C語(yǔ)言中,可以使用標(biāo)準(zhǔn)庫(kù)函數(shù)sprintf來實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)十六進(jìn)制。如:

#include <stdio.h>
#include <stdlib.h>

void decimal_to_hexadecimal(int decimal_number) {
    char hex_string[100];
    sprintf(hex_string, "%x", decimal_number);
    printf("%s\n", hex_string);
}

int main() {
    int number = 255;
    decimal_to_hexadecimal(number);
    return 0;
}
回復(fù)

使用道具 舉報(bào)

8#
ID:1034262 發(fā)表于 2024-4-23 15:51 | 只看該作者
((((a*10)+b)*10+c)*10+d)*10....
回復(fù)

使用道具 舉報(bào)

9#
ID:140275 發(fā)表于 2024-4-23 16:09 | 只看該作者
BCD整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)(3位)       
;入口:R0(高位地址),N位數(shù);出口:R2,R3,R4       
;占用資源:ACC,B;堆棧需求:2字節(jié)       
IPP3:        MOV        R7,N       
        CLR        A       
        MOV        R2,A       
        MOV        R3,A       
        MOV        R4,A       
IPP31:        MOV        A,R4       
        MOV        B,#0AH       
        MUL        AB       
        MOV        R4,A       
        MOV        A,B       
        XCH        A,R3       
        MOV        B,#0AH       
        MUL        AB       
        ADD        A,R3       
        MOV        R3,A       
        CLR        A       
        ADDC        A,B       
        XCH        A,R2       
        MOV        B,#0AH       
        MUL        AB       
        ADD        A,R2       
        MOV        R2,A       
        MOV        A,R4       
        ADD        A,@R0       
        INC        R0       
        MOV        R4,A       
        CLR        A       
        ADDC        A,R3       
        MOV        R3,A       
        CLR        A       
        ADDC        A,R2       
        MOV        R2,A       
        DJNZ        R7,IPP31       
        RET       
回復(fù)

使用道具 舉報(bào)

10#
ID:883242 發(fā)表于 2024-4-23 17:19 | 只看該作者
1534545848 發(fā)表于 2024-4-23 16:09
BCD整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)(3位)       
;入口:R0(高位地址),N位數(shù);出口:R2,R3,R4       
;占用資源:ACC,B;堆棧需求:2字 ...

不對(duì),樓主要的是ascii碼轉(zhuǎn)十六進(jìn)制。
回復(fù)

使用道具 舉報(bào)

11#
ID:76044 發(fā)表于 2024-7-25 09:55 | 只看該作者
經(jīng)過多天思考,有了個(gè)想法,可以根據(jù)十位上的數(shù)乘一個(gè)基數(shù)6,如10 十位是1,6乘以1得6,20 十位是2,6乘以2得12,30 十位是3,6乘以3得18,如此類推,再相加本數(shù)
結(jié)果就是如,十進(jìn)制#30,轉(zhuǎn)換后就是十六進(jìn)制#48H
回復(fù)

使用道具 舉報(bào)

12#
ID:1116913 發(fā)表于 2024-7-25 10:31 | 只看該作者
十進(jìn)制轉(zhuǎn)化為十六進(jìn)制計(jì)算方式,簡(jiǎn)單說就是整數(shù)除以16取余,直到商為0為止,然后從最后一個(gè)余數(shù)讀到第一個(gè)
回復(fù)

使用道具 舉報(bào)

13#
ID:624769 發(fā)表于 2024-7-26 21:17 | 只看該作者
lxm41577 發(fā)表于 2024-7-25 09:55
經(jīng)過多天思考,有了個(gè)想法,可以根據(jù)十位上的數(shù)乘一個(gè)基數(shù)6,如10 十位是1,6乘以1得6,20 十位是2,6乘以2 ...

暈死, 暈倒徹底死的那種, 十進(jìn)制  48, 轉(zhuǎn)成16進(jìn)制  才是 30H  !。!
而不是 十進(jìn)制 30 轉(zhuǎn)成 16進(jìn)制 變 48H !!!!!
你這多天思考,都思考了啥?拿個(gè)筆算算,都不會(huì)算成這樣。
回復(fù)

使用道具 舉報(bào)

14#
ID:76044 發(fā)表于 2024-7-27 14:56 | 只看該作者
188610329 發(fā)表于 2024-7-26 21:17
暈死, 暈倒徹底死的那種, 十進(jìn)制  48, 轉(zhuǎn)成16進(jìn)制  才是 30H  。。。
而不是 十進(jìn)制 30 轉(zhuǎn)成 16進(jìn)制 ...

兄弟,也許你看不上我的方法,我搞單片機(jī)只是愛好,為了這個(gè)SD1302走時(shí),GPS校對(duì)的時(shí)鐘,我想了好久,我秉持的是能用即為合理的原則,這個(gè)方法已經(jīng)在我的時(shí)鐘上,正常運(yùn)行了幾天了,以后有問題交流交流
回復(fù)

使用道具 舉報(bào)

15#
ID:466250 發(fā)表于 2024-7-27 15:51 | 只看該作者
10位一個(gè)數(shù)就增加6,相當(dāng)于擴(kuò)大了1.6倍。
10進(jìn)制的數(shù)先整合到16進(jìn)制的數(shù),10位的就x10,個(gè)位保持,最后相加。就已經(jīng)是16進(jìn)制的數(shù)了。
比如8位的值,4c可拆分為4與c。以此類推
回復(fù)

使用道具 舉報(bào)

16#
ID:332444 發(fā)表于 2024-7-27 18:18 | 只看該作者

回復(fù)

使用道具 舉報(bào)

17#
ID:1129742 發(fā)表于 2024-7-28 20:04 | 只看該作者
十進(jìn)制轉(zhuǎn)換為十六進(jìn)制是一個(gè)常見的編程和計(jì)算機(jī)科學(xué)任務(wù)。以下是十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)的基本步驟:

確定需要轉(zhuǎn)換的十進(jìn)制數(shù):選擇一個(gè)十進(jìn)制數(shù),例如我們轉(zhuǎn)換十進(jìn)制數(shù) 255。

連續(xù)除以16:將十進(jìn)制數(shù)除以16,記錄余數(shù)。然后將商繼續(xù)除以16,再記錄余數(shù),重復(fù)這個(gè)過程直到商為0。

255 ÷ 16 = 15 余 15(十六進(jìn)制表示為 F)
15 ÷ 16 = 0 余 15(十六進(jìn)制表示為 F)
記錄余數(shù):將每次除法的余數(shù)從后向前(即從最后一步到第一步)記錄下來,這些余數(shù)就是十六進(jìn)制數(shù)的每一位。

在我們的例子中,余數(shù)是 F 和 F,所以從后向前讀,十六進(jìn)制數(shù)是 FF。
特殊情況:如果余數(shù)是10到15之間的數(shù)字,它們?cè)谑M(jìn)制中分別表示為 A 到 F。

結(jié)果:將這些十六進(jìn)制的數(shù)字組合起來,就得到了十進(jìn)制數(shù)的十六進(jìn)制表示。

例如,十進(jìn)制數(shù) 255 的十六進(jìn)制表示是 FF。

在編程中,許多語(yǔ)言提供了內(nèi)置函數(shù)來執(zhí)行這種轉(zhuǎn)換。例如,在C語(yǔ)言中,你可以使用 printf 函數(shù)和 %X 格式化輸出選項(xiàng)來打印一個(gè)整數(shù)的十六進(jìn)制表示:

c
#include <stdio.h>

int main() {
    int decimal = 255;
    printf("The hexadecimal representation of %d is %X\n", decimal, decimal);
    return 0;
}
這段代碼會(huì)輸出:

The hexadecimal representation of 255 is FF
在某些編程環(huán)境中,可能需要使用不同的格式化選項(xiàng),例如 %x(小寫)或可能需要其他函數(shù)來執(zhí)行轉(zhuǎn)換
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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