你要发送原始数据流 还是 格式化输出?

如果是格式化 按原子说的 ,用sprintf / printf;

如果发送原始内存数据流, 可按下面发送,

发送

#define BYTE0(pointer) (*((char*)(&pointer)+0));
#define BYTE1(pointer) (*((char*)(&pointer)+1));
#define BYTE2(pointer) (*((char*)(&pointer)+2));
#define BYTE3(pointer) (*((char*)(&pointer)+3));

上位机接到的 十六进制码,再按同样格式转回来。
 如 分别接收到  s1[4] s2[8] 里面, 如果是float 就是4个字节
*(float*)&s1 就是 a
*(double*)&s2 就是b

atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
toupper(将小写字母转换成大写字母)
tolower(将大写字母转换成小写字母)

atof(将字符串转换成浮点型数)
相关函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include <stdlib.h>
定义函数 double atof(const char *nptr);
函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数
     字或正负符号才开始做转换,而再遇到非数字或字符串结束时
     ('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负
     号、小数点或E(e)来表示指数部分,如123.456或123e-2。
 返回值 返回转换后的浮点型数。
附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。
  范例 /* 将字符串a 与字符串b转换成数字后相加*/

     #include<stdlib.h>main(){char *a=”-100.23”;char *b=”200e-2”;float c;c=atof(a)+atof(b);printf(“c=%.2f\n”,c);}执行 c=-98.23

atoi(将字符串转换成整型数)
相关函数 atof,atol,atrtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 int atoi(const char *nptr);
函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数
     字或正负符号才开始做转换,而再遇到非数字或字符串结束时
     ('\0')才结束转换,并将结果返回。
 返回值 返回转换后的整型数。
附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。
  范例 /* 将字符串a 与字符串b转换成数字后相加*/

     #include<stdlib.h>mian(){char a[]=”-100”;char b[]=”456”;int c;c=atoi(a)+atoi(b);printf(c=%d\n”,c);}执行 c=356

atol(将字符串转换成长整型数)
相关函数 atof,atoi,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 long atol(const char *nptr);
函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数
     字或正负符号才开始做转换,而再遇到非数字或字符串结束时
     ('\0')才结束转换,并将结果返回。
 返回值 返回转换后的长整型数。
附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。
  范例 /*将字符串a与字符串b转换成数字后相加*/

     #include<stdlib.h>main(){char a[]=”1000000000”;char b[]=” 234567890”;long c;c=atol(a)+atol(b);printf(“c=%d\n”,c);}执行 c=1234567890

gcvt(将浮点型数转换为字符串,取四舍五入)
相关函数 ecvt,fcvt,sprintf
表头文件 #include<stdlib.h>
定义函数 char *gcvt(double number,size_t ndigits,char *buf);
函数说明 gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示
     显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所
     转换后的字符串包含小数点或正负符号。若转换成功,转换后的字
     符串会放在参数buf指针所指的空间。
 返回值 返回一字符串指针,此地址即为buf指针。
附加说明

  范例 #include<stdlib.h>main(){double a=123.45;double b=-1234.56;char *ptr;int decpt,sign;gcvt(a,5,ptr);printf(“a value=%s\n”,ptr);ptr=gcvt(b,6,ptr);printf(“b value=%s\n”,ptr);}执行 a value=123.45b value=-1234.56

strtod(将字符串转换成浮点数)
相关函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 double strtod(const char *nptr,char **endptr);
函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上
     数字或正负符号才开始做转换,到出现非数字或字符串结束时
     ('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇
     到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字
     符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或
     123e-2。
 返回值 返回转换后的浮点型数。
附加说明 参考atof()。
  范例 /*将字符串a,b,c 分别采用10,2,16 进制转换成数字*/

     #include<stdlib.h>mian(){char a[]=”1000000000”;char b[]=”1000000000”;char c[]=”ffff”;printf(“a=%d\n”,strtod(a,NULL,10));printf(“b=%d\n”,strtod(b,NULL,2));printf(“c=%d\n”,strtod(c,NULL,16));}执行 a=1000000000b=512c=65535

strtol(将字符串转换成长整型数)
相关函数 atof,atoi,atol,strtod,strtoul
表头文件 #include<stdlib.h>
定义函数 long int strtol(const char *nptr,char **endptr,int base);
函数说明 strtol()会将参数nptr字符串根据参数base来转换成长整型数。参
     数base范围从2至36,或0。参数base代表采用的进制方式,如base
     值为10则采用10进制,若base值为16则采用16进制等。当base值为0
     时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制
     做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格
     字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字
     符串结束时('\0')结束转换,并将结果返回。若参数endptr不为
     NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返
     回。
 返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno
     中。
附加说明 ERANGE指定的转换字符串超出合法范围。
  范例 /* 将字符串a,b,c 分别采用10,2,16进制转换成数字*/

     #include<stdlib.h>main(){char a[]=”1000000000”;char b[]=”1000000000”;char c[]=”ffff”;printf(“a=%d\n”,strtol(a,NULL,10));printf(“b=%d\n”,strtol(b,NULL,2));printf(“c=%d\n”,strtol(c,NULL,16));}执行 a=1000000000b=512c=65535

strtoul(将字符串转换成无符号长整型数)
相关函数 atof,atoi,atol,strtod,strtol
表头文件 #include<stdlib.h>
定义函数 unsigned long int strtoul(const char *nptr,char
     **endptr,int base);

函数说明 strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整
     型数。参数base范围从2至36,或0。参数base代表采用的进制方
     式,如base值为10则采用10进制,若base值为16则采用16进制数
     等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符
     则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,
     跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,
     再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若
     参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符
     指针由endptr返回。
 返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno
     中。
附加说明 ERANGE指定的转换字符串超出合法范围。
  范例 参考strtol()
     toascii(将整型数转换成合法的ASCII 码字符)
相关函数 isascii,toupper,tolower
表头文件 #include<ctype.h>
定义函数 int toascii(int c)
函数说明 toascii()会将参数c转换成7位的unsigned char值,第八位则会被
     清除,此字符即会被转成ASCII码字符。
 返回值 将转换成功的ASCII码字符值返回。

  范例 #include<stdlib.h>main(){int a=217;char b;printf(“before toascii () : a value =%d(%c)\n”,a,a);b=toascii(a);printf(“after toascii() : a value =%d(%c)\n”,b,b);}执行 before toascii() : a value =217()

after toascii() : a value =89(Y)
     tolower(将大写字母转换成小写字母)
相关函数 isalpha,toupper
表头文件 #include<stdlib.h>
定义函数 int tolower(int c);
函数说明 若参数c为大写字母则将该对应的小写字母返回。
 返回值 返回转换后的小写字母,若不须转换则将参数c值返回。
附加说明
  范例 /* 将s字符串内的大写字母转换成小写字母*/

     #include<ctype.h>main(){char s[]=”aBcDeFgH12345;!#$”;int i;printf(“before tolower() : %s\n”,s);for(i=0;I<sizeof(s);i++)s[i]=tolower(s[i]);printf(“after tolower() : %s\n”,s);}执行 before tolower() : aBcDeFgH12345;!#$after tolower() : abcdefgh12345;!#$

toupper(将小写字母转换成大写字母)
相关函数 isalpha,tolower
表头文件 #include<ctype.h>
定义函数 int toupper(int c);
函数说明 若参数c为小写字母则将该对映的大写字母返回。
 返回值 返回转换后的大写字母,若不须转换则将参数c值返回。
附加说明
  范例 /* 将s字符串内的小写字母转换成大写字母*/

     #include<ctype.h>main(){char s[]=”aBcDeFgH12345;!#$”;int i;printf(“before toupper() : %s\n”,s);for(i=0;I<sizeof(s);i++)s[i]=toupper(s[i]);printf(“after toupper() : %s\n”,s);}执行 before toupper() : aBcDeFgH12345;!#$after toupper() : ABCDEFGH12345;!#$

转载于:https://www.cnblogs.com/zxouxuewei/p/5022319.html

c语言常用数据类型转换整理相关推荐

  1. Qt常用数据类型转换

    Qt常用数据类型转换 1. char *与const char *的转换 char *ch1="hello11"; const char *ch2="hello22&qu ...

  2. java数据类型的转换函数_JAVA中常用数据类型转换函数

    JAVA中常用数据类型转换函数: string->byte Byte static byte parseByte(String s) byte->string Byte static St ...

  3. C 语言编程 — 数据类型转换

    目录 文章目录 目录 前文列表 数据类型转换 隐式(自动)类型转换 常用的算术转换 显式(强制)类型转换 字符串转换为数字类型:atoi.atol.atof 前文列表 <程序编译流程与 GCC ...

  4. 转:VC++常用数据类型转换

      留着方便自查 VC++数据类型转换 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]=& ...

  5. golang string转int8_golang一般常用数据类型转换总结

    在编程中经常会碰到一些数据类型转换问题,每次都要搜索查询好久,今天直接自己整理一下 string string到int (Atoi) int,err:=strconv.Atoi(string) str ...

  6. c语言中怎么转换类型数据类型,C语言中数据类型转换

    C语言的类型转换,可以分为两种:自动类型转换(隐式类型转换,有编译器帮你去完成)和强制类型转换(你知道自己想要什么,所以才转换). 对于自动类型转换,最常见的就是混合运算以及赋值运算,还有一种就是函数 ...

  7. Go 语言编程 — 数据类型转换

    目录 文章目录 目录 数据类型转换 []byte => other type int => other type string => other type other type =& ...

  8. 【C语言】数据类型转换的问题

    数据类型转换应该注意以下问题: 有符号数和无符号数之间的转换.例如,由signed型转换为等长unsigined型数据时,符号位成为数据的一部分,即负数转换为无符号数时,数值将发生变化.同理,由uns ...

  9. firebird转mysql_Firebird数据库语言参考-数据类型转换

    数据类型转换 在编写一个表达式或指定一个操作,目标应该使用兼容的数据类型对于操作数.当需要使用混合的数据类型发生时,它提示应该寻找一种方式转换不兼容的操作数在对它们进行操作之前.转换数据的能力很可能是 ...

最新文章

  1. 导入语句 python_Python导入语句说明
  2. python opencv-4.1.0 cv::HersheyFonts 文字类型
  3. ubuntu java 全屏显示_java 在ubuntu下实现全屏,上面的状态栏依然显示。如下图,不想要上面的状态栏...
  4. docker 镜像加速
  5. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
  6. 89C52控制1602A液晶的计时器
  7. java集合按大小排序_List集合对象中按照不同属性大小排序的实例
  8. Idea 格式化代码-配置
  9. Ansys命令流(按字母排列)
  10. obs点开始推流显示无法连接服务器,前沿科技资讯:OBS Studio推流连接失败如何办 OBS推流失败的正确解决方法...
  11. 利用Python进行数据分析的学习笔记——chap12
  12. java 一年有多少周_Java8根据一年中的第几周获得Monday
  13. 【马克拉伯】毛刺检测算法
  14. Android穿山甲SDK接入,已封装直接使用
  15. MacOS 安装adb
  16. nrm安装成功后但是不能使用
  17. Python:fractions模块数值、浮点、小数转分数
  18. 博弈论夏普利值!提高机器学习可解释性的新方法!
  19. 利用Fuel-OpenStack9.0安装部署私有云平台OpenStack详细教程(上)
  20. 35岁程序员如何转型

热门文章

  1. VS Code 离线安装插件方法
  2. python中的raw string的使用
  3. “Attention is All You Need 翻译
  4. 新一代图像AI ISP技术
  5. TensorFlow分布式详解
  6. linux locale文件,Linux 怎样修改locale语言设置
  7. Android 自定义 —— View moveTo与 rMoveTo 的区别
  8. Lint found fatal errors while assembling a release target.
  9. 微信小程序一键创建js,json,wxml,wxss
  10. Educational Round 66 题解