C语言-指针与16进制


①规则

16进制

1、2、3、4、5、6、7、8、9、

10用A表示、11用B表示、12用C表示、13用D表示、14用E表达、15用F表达、

16进位。

②例子

#include< studio.h>

main()

{

int a[10]={1,2,3,4,5,6,7,8,9,0},*p=a;

p=a;

/*p表示a[0]的地址194,而不是a[0]的值1*/

printf("%x\n",p);

/*%x表示16进制*/

printf("%x\n",p+9);

}

若1个int变量占2字节, 输出p=194,

则p+9=1A6

~

③计算过程

p为指向数组a首地址的指针,

p+9为指针向右移动9个存储空间,

每个存储空间为1个int变量(2字节),

即指针向右移动9×2=18个字节,

18转化为16进制,16+2转化为12,

9个存储空间→18个字节→12(16进制)

p=194

p+9=194+12=1(10)6=1A6

注意此处

p+9为指针移动9个物理地址,

而不是p+9=194+9=19(13)=19D

相关文章

深入理解二进制十进制十六进制

平常我们在上C语言课时,进制数有二进制,八进制,十进制,十六进制,但这里我们为什么不讲八进制,因为在平时的工作中,几乎不会用八进制。十进制:我们平时使用的数都是由0~9共十个数字组成的。例如1,9,1...

PLC编程必看!5种常见进制数解析,搞懂才能玩转PLC!

今天咱们聊聊PLC编程中那些“神秘”的进制数——二进制、十进制、十六进制…是不是一听就头大?别慌!看完这篇,保证你从“懵逼”变“大神”!1.二进制(Binary)●定义:仅由 0 和 1 组成的进制,...

C语言转义字符

字符集(Character Set)为每个字符分配了唯一的编号,我们不妨将它称为编码值。在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字...

资深的程序员都是这样排查Java问题的,附工具单

摘要: 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日...

net core中byte数组如何高效转换为16进制字符串

在 .NET Core 中,如何把 byte[] 转换为 16 进制字符串?你能想到哪些方法?什么方式性能最好?今天和大家分享几种转换方式。往往在处理字符串性能问题时,首先应该想到的是怎么想办法减少内...