Допустим, у меня есть void*
адрес памяти, и мне нужно распечатать биты, расположенные в этом адресе памяти.Как я могу это сделать?
В моей памяти процессора адреса 32 бита, как и значения памяти, также int 32 бита.Поэтому я подумал сделать это:
unsigned int value = *memory_address;
и затем с помощью простой арифметики (некоторые операции mod
и div
) получить биты значения, сохраненного в memory_address
.
Например, value mod 2
выдаст последний бит этого значения и так далее.Но из того, что я могу сказать (я ожидал разные биты), это не работает.Есть идеи почему?
Кроме того, кто-нибудь знает о готовом исходном коде C, который «делает» это, читает / записывает биты из памяти?