qustion для экспертной C

M

mana111

Guest
Привет
Мне нужно, чтобы извлечь младший байт поплавком переменного и храните его в переменную Char

любые предложения
Thanx

 
Это зависит порядок байтов в машине.т.е. машина мало прямым или с прямым порядком байтов.
Вот код на C обратным порядком байтов

Float / / Float переменная младший байт которого необходимо
Char * PTR, б;

PTR = (Char *) &A;

B = PTR [0]; / / B содержит младший байт сейчас.

..Надеюсь, что это то, что у хотел.

 
# DEFINE LOBYTE () (* ((неподписанных Char *) & ()))
# DEFINE HIBYTE () (* ((неподписанных Char *) & () 1))

 
booklog пишет:

Это зависит порядок байтов в машине.
т.е. машина мало прямым или с прямым порядком байтов.

Вот код на C обратным порядком байтовFloat / / Float переменная младший байт которого необходимо

Char * PTR, б;PTR = (Char *) &A;B = PTR [0]; / / B содержит младший байт сейчас...
Надеюсь, что это то, что у хотел.
 
Вот способ это сделать это не зависит от порядка байтов:

Код:

Чар GetLsb (Float * F)

(

Int = 1;

возвращение ((Char *) F) [(SizeOf (Float) -1 )*!(*( Char *) &)];

)Float F = 123,456;

Чары C = GetLsb (& F);
 
Привет Lambtron,
Whatever U опубликованной необходимости некоторых изменений.
Правильный код, как показано ниже
Чар GetLsb (Float * F)
(
Int = 5;
возвращение ((Char *) F) [(((Char *) &) [0] == 5))?0: (SizeOf (Float) -1)];
)

 
жаль, что я пробовал, но слишком много ошибок

Пожалуйста, я хочу, чтобы преобразовать журнал обычной от основных к с и я знаю, что существует функция Log, но мне нужен подробный как он в основном коде

Можно ли преобразовать это для меня, пожалуйста
-------------------------------------------------- -------------
'Создание некоторые переменные для использования с Л.Н. и журналов

Dim LOG_VALUE как Float
Dim LOG_POWER как Float
Dim LOG_TEMP как Float
Dim LOG_X как Float
Dim LOG_FACTOR как Float
Dim LOG_XSQR как Float
Dim LOG_N As Byte
Dim LOG_TEMP2 As ByteЛНК:

"Мы не можем иметь Л.Н. (1), поэтому мы должны вернуться нуля, если это
Если LOG_VALUE.Byte0 = 0 Тогда LOG_VALUE = 0: Возвращение

'Разница между LOG_N.BYTE0 и $ 7E будет
'Сумме 2 ^ LOG_N том, что мы хотим, чтобы умножить раза Л.Н. (2)
Если LOG_VALUE.Byte0 <= $ 7E Тогда
LOG_N = $ 7E - LOG_VALUE.Byte0
LOG_FACTOR = -0,69314718 * LOG_N
Еще
LOG_N = LOG_VALUE.Byte0 - $ 7E
LOG_FACTOR = 0.69314718 * LOG_N
Endif
LOG_VALUE.Byte0 = $ 7E

'Начало разложения в ряд Тейлора
'Ln (1 LOG_X) = LOG_X - (LOG_X ^ 2 / 2) (LOG_X ^ 3 / 3) - ...

LOG_VALUE = LOG_VALUE - 1
LOG_X = LOG_VALUE
LOG_XSQR = LOG_VALUE
LOG_N = 2
Повтор
LOG_XSQR = LOG_XSQR * LOG_X
LOG_VALUE = LOG_VALUE - (LOG_XSQR / LOG_N)
LOG_XSQR = LOG_XSQR * LOG_X
LOG_TEMP2 = (LOG_N 1)
LOG_VALUE = LOG_VALUE (LOG_XSQR / LOG_TEMP2)
LOG_N = LOG_N 2
До LOG_N> 12
LOG_VALUE = LOG_VALUE LOG_FACTOR
Возврат
-------------------------------------------------- ---------
Thanx многое

 
Я думаю, структура и Союз является лучшим

Союз
(
вещественное число;

структура
(
неподписанных Char value_a0;
неподписанных Char value_a1;
неподписанных Char value_a2;
неподписанных Char value_a3;
)
раскалывать
)
floatcombo;

floatcombo.value = 323947.24742424;

floatcombo.split.value_aX теперь contais 4 байта Float переменная

 
atmelAVR91
Я не знаю, как его использовать в своем коде
Не могли бы вы написать мой основной код, используя ваш метод?
Thankx

 
Привет

консультации следующие книги
Извините, но Вы должны Войти для просмотра этой привязанности

 

Welcome to EDABoard.com

Sponsor

Back
Top