【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


相关文章
|
6天前
|
存储 编译器 C语言
【C语言】【指针1】指针难?看这个就够了!
【C语言】【指针1】指针难?看这个就够了!
|
6天前
|
C语言
C语言------指针
这篇文章是关于C语言中指针的实训,通过示例代码展示了指针的基本概念、定义、赋值、使用和传递,以及指针运算和指针在函数参数中的应用,如交换两个变量的值和找出两个数中的较小值。
C语言------指针
|
10天前
|
存储 C语言
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
25 15
|
20小时前
|
存储 编译器 C语言
【C语言篇】深入理解指针2
代码 const char* pstr = "hello world."; 特别容易让初学者以为是把字符串 hello world.放 到字符指针 pstr ⾥了,但是本质是把字符串 hello world. 首字符的地址放到了pstr中。
|
20小时前
|
存储 程序员 编译器
【C语言篇】深入理解指针1
assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。
|
4天前
|
存储 搜索推荐 C语言
C语言中的指针函数:深入探索与应用
C语言中的指针函数:深入探索与应用
|
6天前
|
存储 编译器 C语言
【C语言】指针练习题目
【C语言】指针练习题目
|
10天前
|
存储 C语言
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
|
11天前
|
C语言 Python
C语言指针(2)
C语言指针(2)
18 5
|
11天前
|
存储 C语言
C语言指针(1)
C语言指针(1)
13 5