C输出地址的十六进制值是如何计算的?

发布于 科技 2024-02-05
13个回答
  1. 匿名用户2024-01-25

    int i, j;

    int *p = i;

    printf("%p", p); //output: 0x0000ffc0

    由此我们可以看出,i的地址是0x0000ffc0,j的地址是0x0000ffc0+sizeof(int)=0x0000ffc4

    事情就是这样。

    输出格式为 %x,它是十六进制输出的表示形式,计算机知道 p 指向 a,当输出输出输出时,它以十六进制格式输出 a 的地址。

    要理解,它可以是这样的:

    printf("%x", p);

    long int_p = (long)p;

    printf("%x", int_p);

    编译器将 p 转换为 long 类型,然后以十六进制形式输出。

    通常,当输出指针的值时,它以 %p 格式输出,其值与 %x 输出没有区别。

  2. 匿名用户2024-01-24

    x 是输出十六进制数。

  3. 匿名用户2024-01-23

    对于 *p,单个 p 是地址,这是由操作系统本身分配的地址。

  4. 匿名用户2024-01-22

    要转换为基础,有一些缺点。

    十进制到十六进制使用短除法,短除法为16,也可以将十进制转换为二进制,再将二进制转换为十六进制(过程类似,先短除2,计算基数,在加权重得到十六进制)过程如下:

    26 26 = 1 余数 10,用十六进制倒写是结果在十六进制中,0-9 不变,10-a、11-b、12-c、13-d、14-e、15-f,所以结果是 1a

  5. 匿名用户2024-01-21

    16 是0x10

    以下是一些示例(为了方便键入,前面省略了 0x)。

    a、b、c、d、e、f(1~15)

    a、1b、1c、1d、1e、1f(16~31)

    a、2b、2c、2d、2e、2f

    ..9a、9b...9fa0

  6. 匿名用户2024-01-20

    40 00 00 00 10 个土豆的十六进制表示 40 00 00 00 (0x40000000),表示 1024x1024 = 1048576 的十进制数,即 2 20,其中 2 20 = 1024x1024,即 1024x1024 = 1048576,数字斩的十六进制表示是 40 00 00 00 (0x40000000)。

  7. 匿名用户2024-01-19

    要转换为基础,有一些缺点。

    十进制到十六进制系统使用短除法,即除以 16

    也可以将十进制转换为二进制,然后将二进制转换为十六进制(过程类似,先除以2,计算二进制,加上权重得到十六进制)过程如下:

    1 盈余 10,按照 16 基本系统向后写是结果。

    在十六进制中,0-9 是不变的,10-a、11-b、12-c、13-d、14-e、15-f,所以结果是 1a

  8. 匿名用户2024-01-18

    16 是0x10

    以下是一些示例(为了方便键入,前面省略了 0x)。

    a、b、c、d、e、f(1~15)

    a、1b、1c、1d、1e、1f(16~31)

    a、2b、2c、2d、2e、2f

    ..9a、9b...9fa0

  9. 匿名用户2024-01-17

    用 8421 码解决它的最快和最简单的方法。 具体流程如下。

    二进制转换为十六进制方法。 (例如101101101)。

    1.将二进制文件分成段,从右到左,四段,最左边小于四位数字的位数用 0 填充。 他们是:0001 0110 1101

    2.从8421码直接计算,四段中最高的数字代表8,最低的数字代表1,中间的数字分别是4和2。

    以上计算方法为:0001=1; 0110=4+2=6;1101=8+4+1=13=d 所以101101001=16d

    十六进制转换为二进制。 (例如A82F)。

    更简单,它实际上是倒退的。

    1.十六进制有几个数字和几个四位数字段。

    2.用 8421 的组合拆分每个数字,例如 a=8+2;5=4+1

    3.每个数字都以四位数字编码并组合。

    例如:a=10=8+0+2+0=1010; 8=8+0+0+0=1000; 2=0+0+2+0=0010; f=15=8+4+2+1=1111

    所以a82f=1010100000101111

  10. 匿名用户2024-01-16

    二进制是每二比一,只有两个数字,0 和 1。 十六进制是每16比1,有0到9和abcdef,共16个数字,其中abcdef分别代表15个。 转换可以通过短除法来完成,将一个数字除以要转换的基本系统,每次取余数,直到余数为 0 并且不能再被除法。

    后者的余数很高。 例如,55 转换为二进制,第一个可被 27 整除,余数为 1... 最后,它被转换为二进制111011

    其他的也差不多。

  11. 匿名用户2024-01-15

    二进制到十六进制:例如从右到左为 110 1011 0101=6b5,从左到每 4 位二进制数到十六进制一位数字到十六进制到二进制:例如从左到右为 6b5=110 1011 0101,从左到右每 1 个十六进制数到 4 位二进制。

  12. 匿名用户2024-01-14

    将基本二进制系统的 4 位和 4 位划分为表示十六进制数的组(从低位开始,将小于高位的 0 分组)。

    十六进制>基数正好相反:1 个数字变成 4 位基数。

    例如,如果 11 中的 16 个基数变为 2 00010001

  13. 匿名用户2024-01-13

    十六进制基位:单位 1,高 = 低 * 16256 16 1 使用这些位按从高到低的顺序组成 1280 8 0 128 包含 8 个 16

    因此 128d = 80h

    128d*4d=80h*4h=80h<<280h*2=80h<<1=100h

    80h*4=80h*2*2=80h<<2=200h

相关回答
14个回答2024-02-05

<>2.单击红色感叹号,然后依次通过控制台中的键盘输入数字字符'0'、'0'、'1'。 >>>More

13个回答2024-02-05

int 的范围太小,如果一个数字的 n 次方大于 int 的范围,那么该数字就会溢出,导致 sum 的值不正确。 >>>More

7个回答2024-02-05

#include

int main() >>>More

4个回答2024-02-05

1. C++也可以以 printf 格式输出。 2.它包含iomanip头文件,也可以以格式输出COUT。 具体而言:包括 >>>More

16个回答2024-02-05

C 标准不输出二进制文件,而是使用 itoa()。 >>>More