C语言编写大整数

本人写的大整数是256进制的,每一个字节里面的每一位都是有用的,因此比较节省空间。前面我用宏定义定义了大整数最大为128字节,也就是1024位,当然你可以改变SIZE的大小来改变大整数的位数。

大整数结构如下:

typedef struct BigNum //大整数结构

{

UCHAR data[SIZE]; //空间为(SIZE * sizeof(UCHAR)),就是SIZE个字节

}BigNum;

以下是头文件BigNum.h

//

#ifndef _BIGNUM_H_

#define _BIGNUM_H_

#define SIZE128 //一个大整数用个字节保存,最多表示位大整数

#define SIZE_102 * SIZE

typedef unsigned charUCHAR;

typedef unsigned shortUSHORT;

UCHAR atox(char ch); //将一个十六进制的字符(4位)转位数字,转换失败返回xff

typedef struct BigNum //大整数结构

{

UCHAR data[SIZE]; //空间为(SIZE * sizeof(UCHAR)),就是SIZE个字节

}BigNum;

BigNum Init(char* str); //初始化大整数,str为十六进制字符串

int GetByte(BigNum bignum); //判断有多少个字节不为

BigNum MovByteLetf(BigNum bignum, int n); //左移n个字节

BigNum MovByteRight(BigNum bignum, int n); //右移n个字节

int Cmp(BigNum bignum_a, BigNum bignum_b); //大整数比较大小,>返回,

BigNum Add(BigNum bignum_a, BigNum bignum_b); //大整数加法

BigNum Sub(BigNum bignum_a, BigNum bignum_b); //大整数减法

//BigNum Mul(BigNum bignum_a, UCHAR uchar); //大整数乘法UCHAR

BigNum Mul(BigNum bignum_a, BigNum bignum_b); //大整数乘法

BigNum Div(BigNum bignum_a, BigNum bignum_b); //大整数除法

BigNum Mod(BigNum bignum_a, BigNum bignum_b); //大整数模运算

BigNum Pow(BigNum bignum, int n); //大整数乘方运算

void Print_16(BigNum bignum); //打印十六进制大整数

void Print_10(BigNum bignum); //打印十进制大整数

#endif

//

以下是C文件BigNum.c

//

// BigNum.c : 定义控制台应用程序的入口点。

//

#include

#include

#include "BigNum.h"

UCHAR atox(char ch) //将一个十六进制的字符(4位)转位数字,转换失败返回xff

{

UCHAR res;

if (ch >= '0' && ch <= '9')

{

res = ch - '0';

}

else if (ch >= 'a' && ch <= 'f')

c语言实验大整数,C语言编写大整数.doc相关推荐

  1. c语言实验教学软件,C语言实验教学法综述

    <C语言实验教学法综述>由会员分享,可在线阅读,更多相关<C语言实验教学法综述(3页珍藏版)>请在装配图网上搜索. 1.C语言实验教学法综述C语言程序设计是一门重要的计算机基础 ...

  2. 第四次c语言实验报告模板,C语言实验报告模板.doc

    C语言实验报告模板.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得 ...

  3. c语言初步实验报告,c语言实验报告(大一c语言实验报告答案)

    哪位帮我一下啊,我这有个作业,要写C语言程序设计实验报告,包括五个部. 最低0.27元/天开通百度文库会员,可在文库查看完整内容> 原发布者:aming7728081 计算机科学与技术系C语言实 ...

  4. 7-298 sdut-C语言实验-众数7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和

    目录 7-298 sdut-C语言实验-众数 7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和 7-298 sdut-C语言实验-众数 分数 14 全屏浏览题目 切换布局 作者 马新娟 ...

  5. 7-224 sdut-C语言实验-排序问题7-223 sdut-C语言实验-求阶乘(循环结构)

    目录 7-224 sdut-C语言实验-排序问题 7-223 sdut-C语言实验-求阶乘(循环结构) 7-224 sdut-C语言实验-排序问题 分数 15 全屏浏览题目 切换布局 作者 马新娟 单 ...

  6. 7-223 sdut-C语言实验-求阶乘(循环结构)7-224 sdut-C语言实验-排序问题7-225 sdut-C语言实验- 冒泡排序中数据交换的次数

    目录 7-223 sdut-C语言实验-求阶乘(循环结构) 7-224 sdut-C语言实验-排序问题 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数 7-223 sdut-C语言实验- ...

  7. 东北大学C语言实验报告,东北大学C语言实验报告模板.doc

    东北大学C语言实验报告模板 C语言程序设计实验报告 实验名称顺序和条件控制语句学 院资源与土木工程学院专业班级采矿1201姓 名学 号任课教师柳秀梅实验时间2013年4月9日 实验目的 熟练掌握顺序结 ...

  8. c语言实验报告范例,C语言实验报告范例.doc

    C语言实验报告范例 C语言程序设计 课程设计报告 班级: 0809班 学号: 1401080920/1401080903 姓名: 陈 鑫/郝政炜 指导教师: 李艳东 完成日期: 2009 年 09 月 ...

  9. c语言实验11答案,c语言实验9-11参考答案

    c语言实验9-11参考答案 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 数组 上机题9.编写程序:从键盘输入一串整数保存到数组中, ...

  10. C语言实验源程序保存,C语言实验.doc

    C语言实验.doc 提交作业要求1用文本文件(记事本.txt)按照实验要求写出实验报告(将每步实验结果拷贝到.txt文件中),把每次的实验报告(.txt文件)和源程序(.C程序)放在文件夹学号姓名(如 ...

最新文章

  1. library “libopencv_java4.so“ not found“
  2. app导出excel_Excel教程:Excel_VBA你给我走开!
  3. 【PS】WBS结算到建工程问题
  4. [Android] QPST,解BL锁,刷Recovery,备份系统,root,刷框架.
  5. new调用函数,new具体做了什么?
  6. String path = request.getContextPath()和String basePath = request.getScheme()
  7. 宁宛 机器人_全文阅读 .007 忠犬机器人
  8. 微信小程序可以加服务器上的字体,微信小程序中自定义字体
  9. 打印机怎么扫描到电脑_【柯美C360扫描怎么用教程】打印机怎么扫描
  10. centos7 host修改
  11. MyBatis-Plus学习
  12. java生成随机数方法
  13. 企业微信自建内部应用Demo源码,附在线Demo及视频讲解,创建测试公司及测试应用简单配置即可使用
  14. 笔记本电脑无线被禁用 是哪个服务器,笔记本无线网络被禁用怎么打开?|无线网络被禁用打开方法...
  15. 总结下几个有漏洞第三方插件
  16. LoadBalancer集成Nacos实现负载均衡
  17. R语言gganimate的使用与呈现
  18. 关于Nginx mmap(MAP_ANON|MAP_SHARED, 314572800)报错
  19. 现在有100块钱,一只公鸡5块,一只母鸡3块,三个小鸡1块。现在让你用100块钱买到100只鸡(大小不限)运用循环,和if语句实现
  20. 发明计算机的人的名人名言,16句关于科学家的名言

热门文章

  1. java为什么要实例化?实例化的对象和引用...
  2. CCF:201609-2 火车购票
  3. 诺基亚免费提供手机安抚开发者
  4. 和信创天云桌面系统远程命令执行
  5. 实现html移动端自适应
  6. 自定义支持 float 的 range 函数
  7. 简述php无限极分类,php之无限极分类
  8. 首款绿色贡献交互应用“i绿信”,亮相深圳引热议!
  9. vscode自动补全函数跳转
  10. 【JAVA】Eclipse断点调试教程