Как символы ASCII хранятся в памяти? - PullRequest
3 голосов
/ 13 октября 2009

Рассмотрим компьютер с адресной памятью в байтах, организованной в 32-битных словах в соответствии со схемой с прямым порядком байтов. Программа считывает символы ASCII, введенные на клавиатуре, и сохраняет их в последовательных местоположениях байтов, начиная с местоположения 1000. Показать содержимое двух слов памяти в местоположениях 1000 и 1004 после ввода имени «Джонсон».

Ответы [ 3 ]

3 голосов
/ 13 октября 2009

Просто преобразуйте каждую букву в гекс, используя удобную таблицу ASCII , и последовательно добавляйте их в память. Это легко выглядит как великолепная графика ASCII:

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

Последние четыре байта были опущены, в конце концов, это домашнее задание.

0 голосов
/ 12 марта 2017

Нет такой вещи как endianes для хранения одного байта (такого как символ ASCII). Endianes вступает в игру только тогда, когда значение представлено в виде нескольких байтов. Так, например, хранение последовательности байтов одинаково в младшем и старшем порядке, только представление байтов отличается. Например, возьмите число 3 735 928 559 (или 0xdeadbeef в шестнадцатеричной записи) и сохраните его как 32-битное слово (например, int) в ячейке памяти 1000, которое даст:

ADR: 1000 1001 1002 1004
BE: de ad be ef
LE: ef быть ad de

0 голосов
/ 13 октября 2009

Я думаю, что слова будут иметь следующие значения:

1000: 0x6a6f686e
1004: 0x736f6e00

'Причина имени содержит только 7 символов, восемь символов неизвестны, поэтому последняя позиция (00) может иметь любое значение.

...