• C++:如何把一个int转成4个字节?


    大家都知道,一个int 或 unsigned int是由4个字节组成的,(《C/C++学习指南》,第3章,第3.2.3节:变量的内存视图)

      例如,

          int   n  =  sizeof( int) ;   // n为4

    大家也能够清晰明白地看到内存里,那4个字节就在那,(《C/C++学习指南》,附录:VC2008调试方法)  

    但问题是:如何在代码里转成4个字节呢?

    方法1:memcpy

    这种方法很暴力,也不科学。大家先试一下。

    unsigned int a = 0x12345678;

    unsigned char buf[4];

    memcpy(buf,  &a,  4);

    观察buf数组的4个元素的值,是不是就是0x78  0x56  0x34  0x12 (嗯,小端的,这就是缺陷,我们想要的结果其实是 buf[0]=0x12  buf[1]=0x34  buf[2]=0x56 buf[4]=0x78)

    方法2:正规方法  (《C/C++学习指南》,第6章,第6.8节)

    buf[0]  = a >> 24;     

    buf[1] = a >> 16;

    buf[2] = a >> 8;

    buf[3] = a;

    用你的VC看一下,是不是正合你意。直接在调试状态下看,别再printf了。

    https://blog.csdn.net/iamshaofa/article/details/44243649

  • 相关阅读:
    CSS 选择器之复合选择器
    答辩ppt
    开题报告
    ADS1110/ADS1271
    电感、磁珠和零欧电阻的区别
    ROM、RAM、DRAM、SRAM和FLASH区别
    运放的带宽
    ADC 分辨率和精度的区别
    Verilog
    C语言 文件读取
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4169188.html
Copyright © 2020-2023  润新知