Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2016, 21:46   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Переменные в памяти компьютера

Добрый вечер. Даны переменные (скрин)Нужно подать эти значения в 16 СЧ и записать в таблицу. Как переводить, знаю, а что значат байты, не поняла. Подскажите пожалуйста,что делать с байтами
Изображения
Тип файла: jpg 1.JPG (21.7 Кб, 66 просмотров)
Вероника99 вне форума Ответить с цитированием
Старый 28.11.2016, 22:33   #2
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Никто не подскажет?(
Вероника99 вне форума Ответить с цитированием
Старый 28.11.2016, 23:04   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Я так понял, что вы вписали сами в первый байт представления строки вида '\142' как 5С313432. Но это не один байт, а 4-е.
Т.е. строка будет храниться в памяти так:
Код:
1 байт   2 байт  3 байт  4 байт
  5C       31      34      32
Вот с такого представления и исходите.
Тут есть неясность и в порядке представления строки в памяти. Возможен вариант, когда старший байт памяти - это младший байт строки.

PS: Ну нет у меня полной ясности задания. Это только моё предположение.
Так, непонятно, почему тип char - 4- байта? А может '\142' - это представление какого то символа? Что за язык?

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 28.11.2016, 23:07   #4
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

'\142' - я тоже так и поняла, что нужно вписывать таким образом
А что делать, например с 94? Как это "растянуть" на 4 байта?
Язык с++
Вероника99 вне форума Ответить с цитированием
Старый 28.11.2016, 23:29   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Посмотрел в справочнике. В С++ тип int занимает 4- байта.
В этом случае старшие байты равны 0.
Кроме того, там дано представление -14810 = -9416.
Поскольку число отрицательное, то старший бит старшего байта должен быть равен 1.
Вместе с тем, если -9416 вписано вами, то как я думаю, это не верно, поскольку в памяти отрицательное число представляется в дополнительном коде. Т.е. это будет FF FF FF 6C.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 28.11.2016, 23:53   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И в один байт -148 не уместится, только с потерей. Как и float, что пониже
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.11.2016, 00:09   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,381
По умолчанию

Вот тут пример для представления в память типа float.
http://blog2k.ru/archives/3321

Аватар
Цитата:
И в один байт -148 не уместится, только с потерей. Как и float, что пониже
Как я понял, речь идет о представлении в 4-х байтах.
Типы int и float d С++ занимают по 4-байта (Microsoft).
Таким образом, эти числа разместятся в 4-х байтах.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 29.11.2016, 15:37   #8
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Если честно,не очень поняла как осуществлять перевод float

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Т.е. это будет FF FF FF 6C.
И откуда взялось FF FF FF 6C.
Вероника99 вне форума Ответить с цитированием
Старый 29.11.2016, 16:03   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Здесь как устоены вещественные числа в памяти компьютера, в том числе и 4-х байтные.
Цитата:
И откуда взялось FF FF FF 6C
Это дополнительный код, мало того, физически в памяти или в файле оно будет перевернуто 6C FF FF FF
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.11.2016, 16:53   #10
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Делаю по статьям:
1) 2670,05 = 101001101110,00
2)1,0100110111000
3) А дальше я не понимаю, что нужно делать и как полученное двоичное число перевести в 16 СЧ
Вероника99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открыть файл с расширением .pas ми подсчитать сколько в памяти занимают переменные типа Integer бипбип Помощь студентам 3 16.05.2012 22:10
Модификация оперативной памяти компьютера - как это лучше сделать? Shoggot Компьютерное железо 6 21.11.2011 17:01
Программа для тестирования памяти, тестирование ячеек памяти Hunter557 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 30.01.2011 19:20
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти ]tach[ Общие вопросы C/C++ 1 19.01.2011 13:16
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56