有关printf("%08x",number)详解

先来看道题----选自程序员面试宝典

下面程序的输出结果是多少?

#include<stdio.h>
int main()
{unsigned int a = 0xFFFFFFF7;unsigned char i = (unsigned char)a;char* b = (char*)&a;printf("%08x,%08x\n",i,*b);return 0;
}

打印结果:

分析:

08表示输出8个字符。x是输出16进制

上面的程序为什么输出fffffff7?

char* b = (char* )&a;//&a可以认为是个指向unsigned int 类型数据的指针,(char *) &a则把&a强制转换成char *类型的指针,并且这个时候发生了截断!截断后,指针b只指向oxf7这个数据(为什么b指向oxf7下面解释),又由于指针b是char *型的,属于有符号数,所以有符号数0xf7在printft ()的作用下输出fffffff7.

在X86系列的机器中,数据的存储是“小端存储”,小端存储的意思就是,对于一个跨多个字节的数据,其低位存放在低地址单元,其高位存放在高地址单元。比如一个int型的数据ox12345678,假如存放在0x0000000, 0x00000001, 0x00000002, 0x00000003 这四个内存单元中

所以上题中的数据存储如下图所示

有关printf输出08x格式详解相关推荐

  1. PE 格式详解与试验

    PE 格式详解与试验 可执行文件结构分析 DOS头 文件头 可选头 PE RVA 地址与文件地址转换 块表 Section Header 导入表 Data Directory 基址重定位 reloc ...

  2. python 多数据输出到txt_详解python读取和输出到txt

    读取txt的数据和把数据保存到txt中是经常要用到的,下面我就总结一下. 读txt文件 python常用的读取文件函数有三种read().readline().readlines() 以读取上述txt ...

  3. php serialize mysql_php 序列化(serialize)格式详解

    1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对序列 ...

  4. 三维重建:PNG格式详解-与LibPNG使用

    PNG图像包含了骨骼信息,左边的图像比右边的大几十K,包含了骨骼信息:        PNG格式详解:https://blog.mythsman.com/post/5d2d62b4a2005d7404 ...

  5. PHP 序列化(serialize)格式详解

      1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对 ...

  6. 安卓camera2 API获取YUV420_888格式详解

    安卓音视频开发中的一个环节是摄像头采集数据,Android平台上摄像头采集的API有两套,camera1和camera2.本文主要讲的是camera2这套API采集数据,并指明YUV420_888格式 ...

  7. Gerber 格式详解

    Gerber 格式详解 gerber中文 gerber,gerber 文件:590m.com/f/25127180-487459253-79168e(访问密码:551685) 以下内容无关: ---- ...

  8. python怎么横着输出_对python3中, print横向输出的方法详解

    对python3中, print横向输出的方法详解 Python 2 : print打印的时候,如果结尾有逗号,打出来时候不会换行.但是在python3里面就不行了. Python3: 3.0的pri ...

  9. 小猫爪:嵌入式小知识10-I2S,TDM,PCM等音频格式详解

    小猫爪:嵌入式小知识10-I2S,TDM,PCM等音频格式详解 1 前言 2 I2S 3 Codec模式(左/右对齐) 3.1 左对齐(MSB对齐) 3.2 右对齐(LSB对齐) 4 DSP模式 5 ...

  10. Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解

    http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...

最新文章

  1. mysql半连接_mysql表的半连接,反连接导致的mysql性能优化剖析
  2. IntelliJ IDEA添加过滤文件或目录
  3. ​Xamarin iOS教程之自定义视图
  4. a href=javascritp:void(0)的用法
  5. 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
  6. 038_JavaScript对象
  7. java面向对象三大特性:封装、继承、多态——举例说明
  8. CVPR 2021 《Domain-robust VQA with diverse datasets and methods but no target labels》论文笔记
  9. gcc版本降级/升级
  10. oracle 自增1,oracle自增无法从1开始
  11. Vboxmanage改动uuid报错的解决的方法
  12. linux mpeg-4,嵌入式MPEG-4解码系统的设计与实现,嵌入式MPEG-4解码系统,嵌入式Linux,视频码流,P...
  13. linux 删除sysadm用户,linux 用户和组命令整理及详细介绍
  14. Nginx服务器的开发团队
  15. php 重定向 post,使用Jquery post时PHP不会重定向
  16. python精彩编程200例-编程语言入门经典100例【Python版】
  17. 74LV165与74HC595 使用
  18. QQ截长图:无需下载其他软件,让电脑和手机一样轻松截长图
  19. Nginx实现白名单灰度发布,杜绝后台不可操控
  20. 天下足球十大感动台词

热门文章

  1. 使用HBuilder打包App教程
  2. elasticsearch查看版本号
  3. openstack虚拟机无法获取IP地址
  4. 如何关闭联想电脑的大小写切换桌面提示
  5. tftp工作流程计算机网络,tftpd32使用方法,[转载]利用GhostSrv+Tftpd32网络克隆攻略
  6. HTML制作虾米音乐,最新虾米音乐电台调用代码
  7. php readystate,ajax+php打造进度条 readyState各状态
  8. 距离多普勒谱(RD谱)绘制方法及理解
  9. tensorflow如何使用tensorboard将图片文件events.out.tfevents.1618410161.DESKTOP-CLCBFNS展示出来
  10. cordova通过指纹插件进行指纹验证