C++:怎样把一个int转成4个字节?
2024-08-29 23:15:49
大家都知道,一个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了。
不用谢了,应该的!
最新文章
- AtomineerUtils爆破过程记录
- WPF学习笔记(3):Path绘制命令zz
- Memcache学习php完整一例
- 动态设置form表单的元素值
- 2016 Al-Baath University Training Camp Contest-1 C
- C#: .net序列化及反序列化 [XmlElement(“节点名称”)]
- Scala List
- c# 类型初始值设定项引发异常
- 最精简的代理设计模式demo - 保姆看孩子
- VS 2012 单元测试简单配置
- lua: Learning Official Doc notes
- django 编程小结
- Angular 学习笔记 ( PWA + App Shell )
- Azure CosmosDB (13) CosmosDB数据建模
- Oracle 生成Guid;Oracle 生成多个Guid;Oracle 生成带''-";的Guid
- scrapy selenium 登陆zhihu
- Easyui 页面设置加载完成之后,满屏
- 经典笔试题:用C写一个函数测试当前机器大小端模式
- LeetCode(35):Palindrome Number
- ACM ICPC, JUST Collegiate Programming Contest (2018) Solution
热门文章
- STATUS CODE: 91, occurs when trying to move media from one volume pool to another.
- 【BZOJ 4518】[Sdoi2016]征途
- jquery常用方法总结(转)
- windows关闭进程 批处理端口占用
- 屏蔽OCulus Rift的官方警告的方法实测
- 【34.88%】【codeforces 569C】Primes or Palindromes?
- GCD网络多线程---同步运行,异步运行,串行队列,并行队列
- SDE 空间表操作
- CF 559B(Equivalent Strings-构造法)
- PatentTips – CoAP Segment size determination