机器代码中文本字符串的形式是什么?

问题描述

如果我写以下行:

char msg[]="Hello";

然后我得到了一个十六进制或二进制文件作为机器代码,机器代码文件中的Hello一词是什么形式?

解决方法

程序文件由机器语言的程序代码和作为二进制数据的程序数据组成。

字符串,数组,指针,整数和浮点数是数据的示例—这样,它们进入可执行程序文件的二进制文件中,但它们不是机器代码。只有程序代码才能转换为机器代码。

因此,实际上没有用于数据的“机器代码”之类的东西,而是存在用于数据表示的标准,例如C样式的以null结尾的字符串,用于字符的ASCII代码,用于国际字符串的UTF-8 ,2的补码整数,用于浮点表示的IEEE 754以及用于布尔值,枚举等的语言特定内容。