-
大小: 39KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-26
- 語(yǔ)言: 其他
- 標(biāo)簽: 計(jì)算器??大整數(shù)庫(kù)??
資源簡(jiǎn)介
實(shí)現(xiàn)超大整數(shù)的加減乘除,模乘模冪。配上窗口,很美觀,像系統(tǒng)自帶的那么方便。

代碼片段和文件信息
//
//
//
#include?“stdafx.h“
#include?“common.h“
S32?input(CString?&m_strTemp?U32?*pwT)
{
/************************************************************************/
S32?i?=?0;
U8??ByteBuf[4?*?????BNLEN]?=?{0};
S8??CharBuf[4?*?2?*?BNLEN]?=?{0};
/************************************************************************/
i?=?m_strTemp.GetLength();
m_strTemp.MakeReverse();
if?(?i?>=?4?*?2?*?(BNLEN?-?1)?||?i?==?0)
{
return?0;
}
else
{
strncpy(CharBuf?m_strTemp.GetBuffer(0)?i);
if?(CharToByte(CharBuf?ByteBuf?i)?==?1)
{
memcpy(pwT?ByteBuf?i?/?2?+?1);
m_strTemp.MakeReverse();
return?1;
}
else
{
m_strTemp.MakeReverse();
return?0;
}
}
}
S32?CharToByte(S8?*pCharBuf?U8?*pByteBuf?S32?nCharLen)
{
/************************************************************************/
S32?i?=?0;
S32?j?=?0;
U8??hdata?=?0;
U8??ldata?=?0;
/************************************************************************/
i?=?(nCharLen?%?2)???(nCharLen?/?2?+?1)?:?(nCharLen?/?2);
for?(j?=?0;?j? {
if?(conver(pCharBuf[2?*?j]??&ldata)?==?1?&&?conver(pCharBuf[2?*?j?+?1]?&hdata)?==?1)
{
pByteBuf[j]?=?ldata?|?(hdata?<4);
}
else
{
return?0;
}
}
return?1;
}
S32?conver(S8?chTemp?U8?*byTemp)
{
if?(chTemp?>=?‘0‘?&&?chTemp?<=?‘9‘)
{
*byTemp?=?(U8)chTemp?-?48;
return?1;
}
else?if?(chTemp?>=?‘a(chǎn)‘?&&?chTemp?<=?‘f‘)
{
*byTemp?=?(U8)chTemp?-?87;
return?1;
}
else?if?(chTemp?>=?‘A‘?&&?chTemp?<=?‘F‘)
{
*byTemp?=?(U8)chTemp?-?55;
return?1;
}
else?if?(chTemp?==?0)
{
*byTemp?=?0;
return?1;
}
else
{
return?0;
}
}
void?output(CString?&m_strT?U32?*pwR?S32?nWordLen)
{
/************************************************************************/
U8??pByteBuf[4?*?2?*?BNLEN]?????=?{0};?????????????????????//對(duì)于乘法可能有2?*?bnlen?長(zhǎng)度的結(jié)果
S8??pCharBuf[4?*?2?*?2?*?BNLEN]?=?{0};
S32?i?=?0;
S32?j?=?0;
S8??hdata?=?0;
S8??ldata?=?0;
/************************************************************************/
i?=?4?*?nWordLen;
memcpy(pByteBuf?pwR?i);
for?(j?=?0;?j? {
reconver(pByteBuf[j]?&?0x0F?&ldata);
reconver(pByteBuf[j]?>>?4?&hdata);
pCharBuf[2?*?j]?????=?ldata;
pCharBuf[2?*?j?+?1]?=?hdata;
}
j?=?2?*?i;
do?
{
j--;
}?while?(pCharBuf[j]?==?‘0‘?&&?j?>?0);
if?(j?0)
{
m_strT?=?“0“;
}
for?(i?=?j;?i?>=0;?i--)
{
m_strT?+=?pCharBuf[i];
}
}
void?reconver(U8?bytebuf?S8?*charBuf)
{
*charBuf?=?(bytebuf?>=?0?&&?bytebuf?<=?9)???((S8)bytebuf?+48)?:?((S8)bytebuf?+?55);
}
/*
=======================================================================================================================
描述:把S8類型數(shù)組轉(zhuǎn)換成U8類型數(shù)組
輸入:
pCharBuf:S8類型數(shù)組,為‘0‘-‘9‘或‘a(chǎn)‘-‘f‘或‘A‘-‘F‘如果不是則返回0
charlen:S8類型數(shù)組長(zhǎng)度
輸出:
pByteBuf:U8類型數(shù)組如果charlen為奇數(shù)pByteBuf長(zhǎng)度至少為charlen/2+1否則至少為charlen/2
bytelen:
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????36968??2009-11-30?17:06??計(jì)算器\Montgomery.aps
?????文件???????6183??2009-11-30?17:06??計(jì)算器\Montgomery.rc
?????文件????????497??2009-11-30?13:02??計(jì)算器\type.h
?????文件???????1288??2009-11-28?18:09??計(jì)算器\Resource.h
?????文件???????3254??2009-12-09?00:56??計(jì)算器\common.cpp
?????文件??????16848??2009-12-09?23:57??計(jì)算器\mon.cpp
?????文件??????58880??2009-12-10?00:04??計(jì)算器\Montgomery.opt
?????文件???????1729??2009-12-10?00:04??計(jì)算器\Montgomery.clw
?????文件???????3651??2009-11-27?10:03??計(jì)算器\ReadMe.txt
?????文件???????1368??2009-11-27?10:03??計(jì)算器\Montgomery.h
?????文件???????2119??2009-11-27?10:03??計(jì)算器\Montgomery.cpp
?????文件???????4617??2009-12-09?03:21??計(jì)算器\Montgomery.dsp
?????文件???????1202??2009-12-09?23:20??計(jì)算器\mon.h
?????文件???????1054??2009-11-27?10:03??計(jì)算器\StdAfx.h
?????文件????????212??2009-11-27?10:03??計(jì)算器\StdAfx.cpp
?????文件????????402??2009-11-27?10:03??計(jì)算器\res\Montgomery.rc2
?????文件???????1078??2009-11-27?10:03??計(jì)算器\res\Montgomery.ico
?????文件???????6391??2009-11-30?14:00??計(jì)算器\Montgomery.mak
?????文件????????545??2009-11-30?14:00??計(jì)算器\Montgomery.dep
?????文件??????10216??2009-12-10?00:02??計(jì)算器\MontgomeryDlg.cpp
?????文件????????543??2009-11-27?10:03??計(jì)算器\Montgomery.dsw
?????文件??????82944??2009-12-10?00:04??計(jì)算器\Montgomery.ncb
?????文件????????254??2009-12-10?00:04??計(jì)算器\Montgomery.plg
?????文件????????406??2009-11-28?15:07??計(jì)算器\common.h
?????文件???????1603??2009-11-28?18:05??計(jì)算器\MontgomeryDlg.h
?????目錄??????????0??2009-11-27?10:03??計(jì)算器\res
?????目錄??????????0??2009-11-27?10:03??計(jì)算器
-----------?---------??----------?-----??----
???????????????244252????????????????????27
............此處省略0個(gè)文件信息
- 上一篇:SAE 1939 汽車通訊報(bào)文
- 下一篇:電腦鼠走迷宮程序包括等高圖制作
評(píng)論
共有 條評(píng)論