char 型数据与十进制数据之间的转换
2017-04-09 22:26
239 查看
一,
a = com_rx_buff[10] - 0x30;
b = com_rx_buff[11] - 0x30;
c = com_rx_buff[12] - 0x30;
m = a*100 + b*10 + c;
减0x30?
解释: a,b,c是 char 型,也可以是short型,也可以是int型的,但在这里,a的最值应该不会超过9,所以char型更合适。将接收存放在com_rx_buff[]中的数据(char)型 转换成 十进制数,
假设 com_rx_buff[11]中的数据为 '9', 在ASCII中9的十六进制是0x39,减去 ‘0‘的ASCII的十六进制0x30 就得到数字9了。
二,测试
#include<stdlib.h>
#include<stdio.h>
#include<stdint.h>
#include<unistd.h>
#include<error.h>
void main(void)
{
uint32_t val;
uint8_t distance = 138;
uint8_t tx_buf[5];
tx_buf[0] = 0x55;
tx_buf[4] = 0x0D;
tx_buf[1] = distance/100%10 + 0x30;
//printf("%d \n",tx_buf[1]);
//printf("%d \n",'0');
tx_buf[2] = distance/10%10 + 0x30;
tx_buf[3] = distance%10 + 0x30;
printf("\n %d %d %d \n",tx_buf[1],tx_buf[2],tx_buf[3]);//49 51 56
val = (tx_buf[1] - '0') * 100 + (tx_buf[2] - '0') * 10 + (tx_buf[3] - '0');
printf("val = %d \n",val);
}
执行结果:
49 51 56
val = 138
a = com_rx_buff[10] - 0x30;
b = com_rx_buff[11] - 0x30;
c = com_rx_buff[12] - 0x30;
m = a*100 + b*10 + c;
减0x30?
解释: a,b,c是 char 型,也可以是short型,也可以是int型的,但在这里,a的最值应该不会超过9,所以char型更合适。将接收存放在com_rx_buff[]中的数据(char)型 转换成 十进制数,
假设 com_rx_buff[11]中的数据为 '9', 在ASCII中9的十六进制是0x39,减去 ‘0‘的ASCII的十六进制0x30 就得到数字9了。
二,测试
#include<stdlib.h>
#include<stdio.h>
#include<stdint.h>
#include<unistd.h>
#include<error.h>
void main(void)
{
uint32_t val;
uint8_t distance = 138;
uint8_t tx_buf[5];
tx_buf[0] = 0x55;
tx_buf[4] = 0x0D;
tx_buf[1] = distance/100%10 + 0x30;
//printf("%d \n",tx_buf[1]);
//printf("%d \n",'0');
tx_buf[2] = distance/10%10 + 0x30;
tx_buf[3] = distance%10 + 0x30;
printf("\n %d %d %d \n",tx_buf[1],tx_buf[2],tx_buf[3]);//49 51 56
val = (tx_buf[1] - '0') * 100 + (tx_buf[2] - '0') * 10 + (tx_buf[3] - '0');
printf("val = %d \n",val);
}
执行结果:
49 51 56
val = 138
相关文章推荐
- 《Qt数据类型》--基本数据类型QByteArray,QString,char,byte之间的转换
- MFC中char*,string和CString之间的转换(其他数据类型)
- CString,string,char*数据类型之间的转换
- VC++中几种数据类型(CString, char*, char, ******等)之间的相互转换
- javascript各进制数据与十进制之间的转换
- C#各种进制之间数据转换二进制、八进制、十进制、十六进制
- [ActionScript 3.0] 十进制与二进制,十六进制等数据之间的相互转换
- 数据结构基础之memset---有memset 抛出的int 和 char 之间的转换和字节对齐
- NSString / NSData / char* 类型之间的转换
- QString与char *之间的转换
- wchar_t char string wstring 之间的转换
- Asp.net MVC后台 XML、DataTable、DataSet之间的数据转换
- 十进制与二进制、八进制、十六进制等之间的转换
- GDI+编程的肤浅使用及Char ,CString,WCHAR 之间的转换小结
- C++中CString,int,string,char*之间的转换
- (转)从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
- python常用的十进制、16进制、字符串、字节串之间的转换
- C++中各种数据类型之间的转换
- NSString / NSData / char* 类型之间的转换
- string 与char* char[]之间的转换