【C语言】强制指针变换,将多字节数据转成单字节数据

简介: 【C语言】强制指针变换,将多字节数据转成单字节数据

将多字节数据转换成单字节数据

1. #define BYTE0(dwTemp)       ( *( (char *)(&dwTemp) + 0) )
2. #define BYTE1(dwTemp)       ( *( (char *)(&dwTemp) + 1) )
3. #define BYTE2(dwTemp)       ( *( (char *)(&dwTemp) + 2) )
4. #define BYTE3(dwTemp)       ( *( (char *)(&dwTemp) + 3) )

个人理解:

(char *)(&dwTemp)  取这个数据的地址,强转为char*类型

*(char *)(&dwTemp)  解引用,得到这个地址下的数据


试错:

648c2abceaa1aefe950edd4fd00531d2_6b924e77d03649dc98f23ab330afe295.png

74e3ae7f56b451667d2fd93c83bc931e_3a5de480c89e49489d7b6a4fe8418006.png

999(十进制)的十六进制是 0x03E7

Byte0显示0xffffffe7 溢出了,0xE7 = 231

char类型变量是-128 ~ +127   231>127

使用要用无符号类型的  unsigned char (范围是0 ~ 255)

f30f201bc0c6ee398e90b01a100b02e7_f772c1a3e6334ef9886958e48310380c.jpeg

54f99f21b9bc5c039248f1075e7efd54_80c30661faa64e17a6cddfb4c2623c24.png

改过来就正确咯

a1a01d69fa63e12a66fb080c27b1f829_7d846cc31f6d4518984f0fc1d78071c9.png


相关文章
|
8天前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
1天前
|
语音技术 C语言 Windows
语音识别------ffmpeg的使用01,ffmpeg的安装,会做PPT很好,ffmpeg不具备直接使用,只可以操作解码数据,ffmpeg用C语言写的,得学C语言,ffmpeg的安装
语音识别------ffmpeg的使用01,ffmpeg的安装,会做PPT很好,ffmpeg不具备直接使用,只可以操作解码数据,ffmpeg用C语言写的,得学C语言,ffmpeg的安装
|
4天前
|
搜索推荐 程序员 C语言
指针赋值与引用传递:C语言的基础知识与实践技巧
指针赋值与引用传递:C语言的基础知识与实践技巧
|
8天前
|
存储 C语言 C++
指针进阶(函数指针)(C语言)
指针进阶(函数指针)(C语言)
|
8天前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)
|
10天前
|
存储 C语言
C语言的函数返回值和指针
C|函数返回值(区分各类值)和指针(区分各类存储空间)的细节
|
10天前
|
C语言
【C语言】:详解函数指针变量,函数指针数组及转移表
【C语言】:详解函数指针变量,函数指针数组及转移表
14 2
|
10天前
|
C语言
【C语言】:详解指针数组,数组指针及(二维)数组传参(2)
【C语言】:详解指针数组,数组指针及(二维)数组传参(2)
10 1
|
10天前
|
Serverless C语言
【C语言】:对(一维)数组与指针的深入理解(1)
【C语言】:对(一维)数组与指针的深入理解(1)
10 1