资源简介
实现超大整数的加减乘除,模乘模幂。配上窗口,很美观,像系统自带的那么方便。

代码片段和文件信息
//
//
//
#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 < i; 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‘ && 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}; //对于乘法可能有2 * bnlen 长度的结果
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 < i; 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类型数组转换成U8类型数组
输入:
pCharBuf:S8类型数组,为‘0‘-‘9‘或‘a‘-‘f‘或‘A‘-‘F‘如果不是则返回0
charlen:S8类型数组长度
输出:
pByteBuf:U8类型数组如果charlen为奇数pByteBuf长度至少为charlen/2+1否则至少为charlen/2
bytelen:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 36968 2009-11-30 17:06 计算器\Montgomery.aps
文件 6183 2009-11-30 17:06 计算器\Montgomery.rc
文件 497 2009-11-30 13:02 计算器\type.h
文件 1288 2009-11-28 18:09 计算器\Resource.h
文件 3254 2009-12-09 00:56 计算器\common.cpp
文件 16848 2009-12-09 23:57 计算器\mon.cpp
文件 58880 2009-12-10 00:04 计算器\Montgomery.opt
文件 1729 2009-12-10 00:04 计算器\Montgomery.clw
文件 3651 2009-11-27 10:03 计算器\ReadMe.txt
文件 1368 2009-11-27 10:03 计算器\Montgomery.h
文件 2119 2009-11-27 10:03 计算器\Montgomery.cpp
文件 4617 2009-12-09 03:21 计算器\Montgomery.dsp
文件 1202 2009-12-09 23:20 计算器\mon.h
文件 1054 2009-11-27 10:03 计算器\StdAfx.h
文件 212 2009-11-27 10:03 计算器\StdAfx.cpp
文件 402 2009-11-27 10:03 计算器\res\Montgomery.rc2
文件 1078 2009-11-27 10:03 计算器\res\Montgomery.ico
文件 6391 2009-11-30 14:00 计算器\Montgomery.mak
文件 545 2009-11-30 14:00 计算器\Montgomery.dep
文件 10216 2009-12-10 00:02 计算器\MontgomeryDlg.cpp
文件 543 2009-11-27 10:03 计算器\Montgomery.dsw
文件 82944 2009-12-10 00:04 计算器\Montgomery.ncb
文件 254 2009-12-10 00:04 计算器\Montgomery.plg
文件 406 2009-11-28 15:07 计算器\common.h
文件 1603 2009-11-28 18:05 计算器\MontgomeryDlg.h
目录 0 2009-11-27 10:03 计算器\res
目录 0 2009-11-27 10:03 计算器
----------- --------- ---------- ----- ----
244252 27
............此处省略0个文件信息
- 上一篇:SAE 1939 汽车通讯报文
- 下一篇:电脑鼠走迷宫程序包括等高图制作
相关资源
- 电脑卡西欧计算器 fx-991CN X Emulator19中
- 卡西欧工程计算器模拟器Casio FX
- PIC 单片机定时器初值计算器
- 湍流k-e经验值计算器
- PIC单片机延时计算器
- MVC模式实现的计算器
- powerbuilder 计算器小程序
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- 基于51单片机的计算器(C51编写,有
- labview计算器实例.vi88218
- EGM2008重力模型计算器
- 基于AT89S52单片机简易计算器的设计
- 中兴电视盒ADB密码计算器
- 实验1.zip arduino跑马灯led灯实验,串口
- 汇率计算器
- 色坐标计算器
- 词法分析器 -计算器版
- 课程设计简易计算器设计
- proUSB注册计算器
- 金融计算器tvm、npv、现金流、简单计
- 基于算符优先分析表的计算器
- 安卓微积分计算器
- 计算器.zip
- 仿小米计算器
- 多功能矩阵计算器珍藏版
- QT实战项目五--计算器
- 一个PMV计算器。
- 席氏铁口断旺衰计算器v0.95安卓版.r
- 计算器小程序源代码连续运算
评论
共有 条评论