//16进制<->10进制互换程序
unsigned char d[10]; //用于显示的10位显示缓存
//========================================================
//16进制to10进制输出子程序:显示数据,起始位,结束位,有无小数点
//========================================================
void output(unsigned long dd,unsigned char s,unsigned char e,unsigned char DIP) {
unsigned long div;
unsigned char tm[8],i,j;
div=10000000;
for (i=0;i<8;i++) {
tm[i]=dd/div;
dd%=div;
div/=10;
}
for (i=0;i<6;i++) {
if (tm[i]!=0) break;
tm[i]=nul;
}
tm[5]|=dip; //小数点控制,请看“串行LED数码管显示驱动程序”
j=7;
for (i=s;i d[i]=tm[j];
j--;
}
}
//把显示位5-9位的10进制数转换成为16进制数
unsigned int input(void) {
unsigned int dd,dat;
dd=10000;dat=0;
for (i=5;i<10;i++) {
dat+=dd*temp;
dd/=10;
}
return(dat);
}
关键字:16进制 10进制 互换程序
引用地址:
16进制_10进制互换程序
推荐阅读最新更新时间:2024-03-16 15:52
stm32发送16进制的数组总结
关于STM32如何串口输出16进制的数值,然后在串口调试助手上显示,很多人是用printf(“%02x”,A)语句,但是在串口调试助手上显示的是ACSII码,不是我们要的HEX数据,在这里我们用另外一种方法来在这件事情。 直接用寄存器来做,下面看代码: USART_SendData(USART1,0x00) ; USART_SendData(USART1,0x01) ; USART_SendData(USART1,0x02) ; 这样通过上位机收到的只是02并不是00 01 02 因为数据还来不及发送,数据就被后面来的数据覆盖了,所以收到的数据是02,不是00 01 02 USART_SendData(USA
[单片机]
PIC单片机4位16进制数除于4位16进制数子程序
;************************************************************** ; 除法子程序 ;/************************************************************* CF1 MOVLW 0FFH;被除数 MOVWF 70H ;被除数高8位寄存器 MOVLW 0FFH;被除数 MOVWF 71H;被除数低8位寄存器 MOVLW 00H MOVWF 72H ;余数高8位寄存器 MOVLW 00H MOVWF 73H ;余数低8位寄存器 MOVLW 00H MOVWF 74H;商高8位寄存器 MO
[单片机]
[C语言] 16进制整数转字符串
static void hex_to_str(uint8_t *source, uint32_t len, uint8_t *target) { uint8_t ddl, ddh; uint32_t i; for (i = 0; i len; i++) { ddh = ('0' + source / 16); ddl = ('0' + source % 16); if (ddh '9') ddh = (ddh + ('a' - '9' - 1)); if (ddl '9&
[单片机]