7-1 无符号整数的内部结构 - C/C++ 指针及引用

分数 10

全屏浏览题目

切换布局

作者 海洋饼干叔叔

单位 重庆大学

无符号整数v由4个字节构成。请编程完成下述任务:

  1. 从键盘读取一个整数,存入unsinged int v;
  2. 以16进制格式打印v的值;
  3. 取v的地址,并强制类型转换成unsigned char*,然后通过这个地址/指针依次打印构成v的第0,第1,第2,第3个字节的16进制值。

输入格式:

正整数v

输出格式:

请参考样例

输入样例:

12345678

输出样例:

bc614e
4e 61 bc 0

说明:输出的第1行为无符号整数v的16进制值,第2行为构成v的四个字节各自的16进制值。
请通过这个例子的输出结果思考无符号整数v内部的存储结构,权重高的字节存储在高地址还是低地址?

感觉不会?  那试着听听免费的B站网课

简洁的C和C++ - 重庆大学在线课程
Python编程基础及应用 - 重庆大学在线课程

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

 

#include<iostream>

using namespace std;
int main()
{

    unsigned int v;
    cin >> v;
    cout << hex;
    cout << v << endl;
    unsigned char* p = (unsigned char*)&v;
    
    for (int i = 0; i < 4; i++)
    {
        cout << int(p[i]);
        if (i != 3)
        {
            cout << " ";
        }
    }

    //zhichucun bushuchu??
    return 0;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐