ASCII字符如何存储在内存中?

时间:2009-10-13 11:34:10

标签: ascii endianness

根据big endian方案,考虑具有以32位字组织的字节可寻址存储器的计算机。程序读取在键盘输入的ASCII字符,并将它们存储在连续的字节位置,从位置1000开始。在输入名称“johnson”后,在位置1000和1004显示两个记忆单词的内容。

3 个答案:

答案 0 :(得分:3)

只需使用方便的ASCII table将每个字母转换为十六进制,然后按顺序将它们添加到内存中。这很容易呈现华丽的ASCII图形:

+------+--+--+--+--+
|0x1000|6A|6F|68|6E|
+------+--+--+--+--+

遗漏了最后四个字节,毕竟这是家庭作业。

答案 1 :(得分:0)

没有用于存储单个字节(例如ASCII字符)的endianes。当一个值表示为多个字节时,Endianes才会起作用。因此,例如,存储字节序列在小端和大端中是相同的,只有字节的表示是不同的。例如,取3 335 928 559(或十六进制表示法中的0xdeadbeef)并将其作为32位字(例如,int)存储在内存位置1000将给出:

ADR:1000 1001 1002 1004
BE:de ad be ef
LE:ef be ad de

答案 2 :(得分:-2)

我认为言语将具有下一个价值观:

1000: 0x6a6f686e
1004: 0x736f6e00

'名称的原因只包含7个字符,8个字符未知,因此最后位置(00)可能有任何值。