Quote (Grand)
вобщем для преобразования надо было разделить на
Торг сдесь не уместен
Ничего делить отнимать и грабить тут не нужно
Есть цифры в памяти, в двоичном формате, посмотреть можно и в шеснадцатеричном,
память ну никак даже не догадывается что значат эти цифры, ей по фиг.
Когда ты присваиваеш переменной значение, оно просто заносится в память отведенную
для этой переменной и все, никаких вычислений и преобразований при этом не происходит.
Зная адрес по которому находятся данные одной переменной их можно считать и дать другой переменной, при этом переменные должны быть однотипными, иначе получится что ты
наливаеш в литровую емкость три литра жидкости и наоборот. Другими словами, все дело в
интерпритации участка памяти, ибо там нет никаких переменных, символов и прочей гадости, только цифры. Ну и конечно, при работе с памятью есть определенные ограничения, попробуеш залезть не туда, тебе винда даст по рукам, в виде месаги.Добавлено (08 Ноябрь 2009, 16:39)
---------------------------------------------
Да вот еще что, 32 битные числа могут быть, кроме с плавающей запятой, еще и формата
даблворд, а в памяти это хранится наоборот, младшая часть, старшая часть.
Разделив на 65536 ты просто сдвинул младшую часть, но это однозначно указывает на то что ты применяеш не тот тип переменной, и когда исходное число у тебя будет иметь
не пустую часть в старшей, этот фокус не проканает. Если все же тебе понравится этот
корявый метод, то и делить то ничего не надо, просто измени адрес на 2 в нужную сторону. А если хочеш поананировать, то считывай побайтно с последующим умножением, по известной формуле.