美文网首页
字符串和代码的表示

字符串和代码的表示

作者: Sun东辉 | 来源:发表于2022-08-09 00:03 被阅读0次

C 语言中字符串被编码为一个以 null( 其值为 0) 字符结尾的字符数组,每个字符都由某个标准编码来表示,最常见的是 ASCII 字符码。因此,如果我们以参数 "12345" 和 6(包括终止符)来运行例程 show_bytes,我们得到结果 31 32 33 34 35 00。请注意,十进制数字 x 的 ASCII 码正好是 Ox3x,而终止字节的十六进制表示为 Ox00。在使用 ASCII 码作为字符码的任何系统上都将得到相同的结果,与字节顺序和字大小规则无关 因而,文本数据比二进制数据具有更强的平台独立性。

考虑下面的 C 函数:

int sum(int x, int y) {
    return x + y;
}

当我们在示例机器上编译时,生成如下字节表示的机器代码:

  • Linux 32: 55 89 e5 Sb 45 Oc 03 45 08 c9 c3
  • Windows:55 89 e5 Sb 45 Oc 03 45 08 5d c3
  • Sun: 81 c3 eO 08 90 02 00 09
  • Linux 64: 55 48 89 e5 89 7d fc 89 75 f8 03 45 fc c9 c3

我们发现指令编码是不同的。不同的机器类型使用不同的且不兼容的指令和编码方式。即使是完全一样的进程,运行在不同的操作系统上也会有不同的编码规则,因此二进制代码是不兼容的。二进制代码很少能在不同机器和操作系统组合之间移植。

计算机系统的一个基本概念就是,从机器的角度来看,程序仅仅只是字节序列。机器没有关于原始源程序的任何信息,除了可能有些用来帮助调试的辅助表以外。在第 3 章学习机器级编程时,我们将更清楚地看到这一点。

相关文章

  • 字符串和代码的表示

    C 语言中字符串被编码为一个以 null( 其值为 0) 字符结尾的字符数组,每个字符都由某个标准编码来表示,最常...

  • typescript定义

    1、js代码 ts代码 此图表示 变量b声明的为number 不能赋值字符串

  • 四月三周技术复盘

    sql的NULL和空字符串 类似于java的NULL和空字符串,NULL表示没有值,空字符串表示值为空字符串,完全...

  • java获取字符串宽度(像素)

    获取字符串宽度,以下代码表示字体为‘Arial Unicode MS’,大小为10,字符串为text

  • 数组练习

    没有格式的代码就用div表示了 indexOf()检测字符串索引, 如果不存在, 返回-1 split()将字符串...

  • Java中的异常处理机制

    Java中的异常处理机制 ** 示例** 上述代码运行 在上述代码中Integer.parseInt表示把字符串类...

  • JavaScript String方法

    废话不多说,直接看代码 String.startsWith() 返回布尔值,表示参数字符串是否在原字符串的头部。 ...

  • java基础

    一:1.代码中的 “yyyy-MM-dd HH:mm:ss” 为预定义字符串, yyyy 表示四位年, MM 表示...

  • Kotlin(4):字符串

    字符串用 String 类型表示,字符串是不可变的。 字符串表示方法 使用"或者'''表示字符串 字符串访问 字符...

  • 伪·从零开始学Python - 2.2.2 数据类型 - 字符串

    本小节起,我们约定:在展示代码时,以下格式表示在Python Shell中输入。 基本介绍 字符串(str)是表示...

网友评论

      本文标题:字符串和代码的表示

      本文链接:https://www.haomeiwen.com/subject/igmpwrtx.html