C++|char*大小端转换

免责:百度搜索AI自动生成,如果侵权联系我删除。

亲测好用。

C++ char*大小端转换
在C++中,可以使用位操作来实现char指针中的数据的大小端转换。以下是一个简单的例子,演示如何交换一个32位整数的字节顺序。

#include <iostream>
#include <cstdint>
 
void swap_endian(void* data, size_t size) {
    char* bytes = reinterpret_cast<char*>(data);
    for (size_t i = 0; i < size / 2; i++) {
        std::swap(bytes[i], bytes[size - i - 1]);
    }
}
 
int main() {
    uint32_t value = 0x12345678; // 假设这是我们要转换的值
    char* data = reinterpret_cast<char*>(&value);
 
    std::cout << "Before swap: ";
    for (size_t i = 0; i < sizeof(value); i++) {
        std::cout << std::hex << static_cast<unsigned>(data[i]) << " ";
    }
    std::cout << std::endl;
 
    swap_endian(data, sizeof(value)); // 执行大小端转换
 
    std::cout << "After swap:  ";
    for (size_t i = 0; i < sizeof(value); i++) {
        std::cout << std::hex << static_cast<unsigned>(data[i]) << " ";
    }
    std::cout << std::endl;
 
    return 0;
}

这段代码定义了一个swap_endian函数,它接受一个指针和一个大小参数,然后交换指针指向的内存区域中字节的顺序。在main函数中,我们创建了一个uint32_t类型的变量,并转换为char*来调用swap_endian函数。

运行这段代码,你会看到一个32位整数的字节顺序从原始的12 34 56 78转换为78 56 34 12。这个例子演示了如何通过位操作来实现大小端转换。

相关推荐

  1. C++|char*大小转换

    2024-03-28 11:00:01       44 阅读
  2. Qt应用软件【数据篇】大小数据转换

    2024-03-28 11:00:01       53 阅读
  3. qt c++ 大小字节序数据获取与转换

    2024-03-28 11:00:01       27 阅读
  4. C++ char[]、char*、const char*、string 相互转换

    2024-03-28 11:00:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 11:00:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 11:00:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 11:00:01       82 阅读
  4. Python语言-面向对象

    2024-03-28 11:00:01       91 阅读

热门阅读

  1. 【力扣】210 课程表(c++)解析

    2024-03-28 11:00:01       46 阅读
  2. flutter 修改app名字

    2024-03-28 11:00:01       39 阅读
  3. 设计模式,装饰模式

    2024-03-28 11:00:01       45 阅读
  4. 设计模式(5):原型模式

    2024-03-28 11:00:01       35 阅读
  5. 项目搭建之统一返回值

    2024-03-28 11:00:01       40 阅读
  6. 5.88 BCC工具之tcpsynbl.py解读

    2024-03-28 11:00:01       39 阅读
  7. stm32重写printf函数串口调试---环境:stm32+hal+cubeide

    2024-03-28 11:00:01       42 阅读