# include & ltstdio.h & gt
# include & ltmath.h & gt
//?四個二進制位轉換成16位的字符(三個二進制位轉換成八進制位的字符)(十進制0-9轉換成壹個字符)。
夏爾?FourBinaryToOneHexadecimalChar(無符號?夏爾?數字)
{
切換?(數字)
{
案子?0:?回歸?'0';
案子?1:?回歸?'1';
案子?2:?回歸?'2';
案子?3:?回歸?'3';
案子?4:?回歸?'4';
案子?5:?回歸?'5';
案子?6:?回歸?'6';
案子?7:?回歸?'7';
案子?8:?回歸?'8';
案子?9:?回歸?'9';
案子?10:?回歸?a’;
案子?11:?回歸?b’;
案子?12:?回歸?c’;
案子?13:?回歸?d’;
案子?14:?回歸?e’;
案子?15:?回歸?f’;
默認:?回歸?x’;
}
}
//?字符串倒置
作廢?反向限制(char?*來源,?int?開始,?int?結束)
{
int?我;
夏爾?溫度;
為了什麽?(我?=?0;?我?& lt?((完?-?開始?+?1)?/?2);?++i)
{
臨時工?=?來源【開始?+?I];
來源【開始?+?我]?=?來源【End?-?I];
來源【End?-?我]?=?溫度;
}
}
//?比較浮動類型大小
int?CompareFloat(float?壹、?浮動?b)
{
如果?((A?& lt?b)
& amp& amp?(fabs(A?-?b)?& gt?1e-6f))
{
回歸?-1;
}
不然呢?如果?((A?& gt?b)
& amp& amp?(fabs(A?-?b)?& gt?1e-6f))
{
回歸?1;
}
其他
{
回歸?0;
}
}
//?浮點到字符串(十進制)(精度是十進制精度)
作廢?flottostringdecimal(float?浮,?夏爾?*目的地,?未簽名?int?精度)
{
如果?(CompareFloat(Float,?0)?!=?0)
{
//?將小數位移到整數位
浮動?臨時工?=?浮動?*?powf(10.0f,?(浮點)精度);
//?負數轉換成正數,否則不能使用拼圖的轉換。
如果?(CompareFloat(Temp,0)?==?-1)
{
臨時工?=?-溫度;
}
浮動?IntInFloat?=?0.0;
modff(溫度,& ampintin float);
int?我?=?0;
未簽名?夏爾?num
為了什麽?(我?=?0;?(我?& lt?(int)精度)?& amp& amp?(CompareFloat(IntInFloat,?0)?!=?0);?++i)
{
//?浮動?轉?未簽名?(同Internationalorganizations)國際組織
//?拼圖的變換(因為不知道內部怎麽實現,所以叫拼圖的變換)
num?=?(未簽名?char)((無符號?int)IntInFloat?%?10);
目的地[i]?=?FourBinaryToOneHexadecimalChar(num);
IntInFloat?/=?10;
modff(IntInFloat,?& ampintin float);
}
如果?(精度?!=?0)
{
目的地[i]?=?'.';
++ I;
}
什麽時候?(CompareFloat(IntInFloat,?0)?!=?0)
{
num?=?(未簽名?char)((無符號?int)IntInFloat?%?10);
目的地[i]?=?FourBinaryToOneHexadecimalChar(num);
IntInFloat?/=?10;
modff(IntInFloat,?& ampintin float);
++ I;
}
如果?(CompareFloat(Float,?0)?==?-1)
{
目的地[i]?=?'-';
++ I;
}
反向跟蹤(目的地,0,?我?-?1);
目的地[i]?=?'\0';
返回;
}
其他
{
目的地[0]?=?'0';
目的地[1]?=?'\0';
返回;
}
}然後是測試。
//?試驗碼
fprintf(FP_BaseZeroth,?“測試對象:void?flottostringdecimal(float?浮,?夏爾?*目的地,?未簽名?int?精度)\ n ");
fprintf(FP_BaseZeroth,?"測試輸入:0;?123;?123.456;?-123;?-123.456;?1.23456 e 10f;\ n ");
fprintf(FP_BaseZeroth,?"預測輸出:0;?123;?123.456;?-123;?-123.456;?確定有效數字部分\ n”);
fprintf(FP_BaseZeroth,?"實際產量:");
浮動?答[6]?=?{?0.0f,?123.0f,?123.456f,?-123.0f,?-123.456f,?1.23456e10f?};
夏爾?des[100];
flottostringdecimal(A[0],?德斯?0);
fprintf(FP_BaseZeroth,?" % s;?",?des);
flottostringdecimal(A[1],?德斯?0);
fprintf(FP_BaseZeroth,?" % s;?",?des);
flottostringdecimal(A[2],?德斯?3);
fprintf(FP_BaseZeroth,?" % s;?",?des);
flottostringdecimal(A[3],?德斯?0);
fprintf(FP_BaseZeroth,?" % s;?",?des);
flottostringdecimal(A[4],?德斯?3);
fprintf(FP_BaseZeroth,?" % s;?",?des);
flottostringdecimal(A[5],?德斯?3);
fprintf(FP_BaseZeroth,?" % s;?",?des);
fprintf(FP_BaseZeroth,?" \ n \ n ");試驗結果