问题描述
如果我写以下行:
char msg[]="Hello";
然后我得到了一个十六进制或二进制文件作为机器代码,机器代码文件中的Hello一词是什么形式?
解决方法
程序文件由机器语言的程序代码和作为二进制数据的程序数据组成。
字符串,数组,指针,整数和浮点数是数据的示例—这样,它们进入可执行程序文件的二进制文件中,但它们不是机器代码。只有程序代码才能转换为机器代码。
因此,实际上没有用于数据的“机器代码”之类的东西,而是存在用于数据表示的标准,例如C样式的以null结尾的字符串,用于字符的ASCII代码,用于国际字符串的UTF-8 ,2的补码整数,用于浮点表示的IEEE 754以及用于布尔值,枚举等的语言特定内容。