fpubext.c
来自「这是一个潜入式开发的c语言代码」· C语言 代码 · 共 45 行
C
45 行
#include "fpubext.h"
VOID SetMode(BYTE* from, REGINT sourcemode, BYTE* to, REGINT targetmode)
{
if(sourcemode == targetmode)
{
memcpy(to, from, 8);
}
else // only think about HL,LH IEEE DOUBLE
{
BYTE b[8];
memcpy((BYTE*)&b, from, 8);
memcpy(to, (BYTE*)(&b)+4, 4);
memcpy(to+4, (BYTE*)&b, 4);
}
}
/* parase double value in system matched format */
DOUBLE ext_ParaseDouble(BYTE* buffer, REGINT mode)
{
DOUBLE result = 0;
if(mode == __SYS_DOUBLE_MODE__)
{
memcpy(&result, buffer, 8);
}
else
{
SetMode(buffer, mode, &result, __SYS_DOUBLE_MODE__);
}
return result;
}
/* parase system double into target mode bytes */
VOID ext_ToBuffer(DOUBLE value, REGINT targetMode, BYTE* buffer)
{
if(targetMode == __SYS_DOUBLE_MODE__)
{
memcpy(buffer, &value, 8);
}
else
{
SetMode(&value, __SYS_DOUBLE_MODE__, buffer, targetMode);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?