任意进制加法计算
来源:互联网 发布:淘宝一千零一夜2 编辑:程序博客网 时间:2024/05/18 03:18
任意进制加法计算
目前是限制一百位以内的,如果要修改更长的话也很容易。测试了一下,还行,如果有什么错误希望大家指出来 。后续再抽空把减法也写一下。
#include <stdio.h>#include <stdlib.h>#include <string.h>#define ARY 30 //定义进制(30进制) char px[]={ '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z' };unsigned char c_chang(char c){ if((c>='0')&&(c<='9')) { return c-'0'; } else if((c>='a')&&(c<='j')) { return c-'a'+10; } else if((c>='A')&&(c<='J')) { return c-'A'+10; } return 0xff;} //data_Sum=data_A+data_Bvoid test(char *data_A,char *data_B,char *data_Sum){
char buf_a[102];char buf_b[102];char buf_s[102];char str_s[102];unsigned char carry_flag=0;unsigned char len_a=strlen(data_A);unsigned char len_b=strlen(data_B);memset(buf_a,0,sizeof(buf_a));memset(buf_b,0,sizeof(buf_b));memset(buf_s,0,sizeof(buf_s));memset(str_s,0,sizeof(str_s));for(char i=0;i<len_a;i++){
buf_a[102-i-1]=c_chang(data_A[len_a-i-1]);
}for(char i=0;i<len_b;i++){
buf_b[102-i-1]=c_chang(data_B[len_b-i-1]);
}for(char i=0;i<102;i++){
char sum=buf_a[102-i-1]+buf_b[102-i-1]+carry_flag;if(sum>=ARY){
buf_s[102-i-1]=sum-ARY;carry_flag=1;
}else{
buf_s[102-i-1]=sum;carry_flag=0;
}}for(char i=0;i<102;i++){
str_s[i]= px[buf_s[i]];
}for(char i=0;i<102;i++){
if(str_s[i]!='0'){
for(char j=i;j<102;j++)
{data_Sum[j-i]= str_s[j];}break;
}
}
}main(){ char *aa="adeghjcd7k"; char *bb="22d5f1h2ic"; char sum[102]; memset(sum,0,sizeof(sum)); test(aa,bb,sum); printf("sum=%s\r\n",sum); while(1) { char end_buf[512]; gets(end_buf); if(strstr(end_buf,"end")||(strstr(end_buf,"END"))) { break; } }; }
0 0
- 任意进制加法计算
- python任意进制加法
- 2-36进制的加法计算
- 字符串编程(3)——高精度任意进制加法找回文数
- 任意长度正整数加法
- 用C语言实现的一个可以计算任意长度整数加法的小程序
- 任意长度数字的加法
- 火星加法(20进制加法
- 16进制加法
- 16进制加法
- 高精度计算----加法运算
- 大整数加法计算
- nature (加法计算)
- 不用加号计算加法
- 不用+-*/计算加法
- 大数计算_加法
- 超长整数加法计算
- 计算加法数字
- jmap -histo pid 输出的[C [B [I [S methodKlass constantPoolKlass含义
- 为什么移动Web应用程序很慢(译)
- 进制转换
- vim中查询修改文件编码格式
- DbAdapter 创建数据库及初始化 范例
- 任意进制加法计算
- linux下安装mysql后Access denied for user 'xxx'@'xxxxx' (using password: YES)
- clojure学习点滴2
- CListCtrl控件使用
- 函数式编程
- cronExpression表达式
- ORA-25153: Temporary Tablespace is Empty
- 关于android webview js桥(addJavascriptInterface) 失效的问题
- 设计模式2:鸭子-策略模式(Strategy)