浮点数使用ieee-754标准,单精度和双精度浮点数长度和格式都不同,直接复制时需要考虑格式是否匹配的问题。而且你接收的字符还存在大、小端问题,需要根据实际情况来转换。
加减运算符优先级大于位运算优先级 所以第一个写法错了
你这就是整数类型数据吧 不应该用双精度类型 改为int类型吧
双精度应该是%lf 单精度才是%f
C语言_023_输出显示不同类型数据_上
C语言的基本知识吧:
1、圆括号【()】、下bai标运算符【[]】、分du量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】;
2、逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++】【 --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*】【&】、长度运算符【sizeof】;
3、乘法运算符【*】、除法运算符【/】、取余运算符【%】;
4、加法运算符【+】、减法运算符【-】;
5、左移动运算符【<<】、右移动运算符【>>】;
改成
a = (((int)pBuf[0])<<24) + (((int)pBuf[1])<<16) +(((int)pBuf[2])<<8) + ((int)pBuf[3]);