进制转换

进制转换

喜你入骨 提交于 2019-12-04 04:36:34
一、进制   进制就是进位计数制,是人为定义的带进位的计数方法。   对于任何一种进制—— X进制,就表示每一位置上的数运算时都是 逢 X 进一位 。   十进制就是逢十进一,二进制就是逢二进一,十六进制就是逢十六进一,以此类推。 二、进制转换   进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“ 基数 ”和“ 位权 ”构成。    基数 :进制计数制中所采用的数码(数制中用来表示“量”的符号)的个数。    位权 :进位制中每一固定对应的单位值。 三、进制转换结构图   最常用的进制转换是二、八、十、十六进制之间的相互转换,下面是各个进制之间关系的结构图。      下面对各个进制的转换进行详解。 四、进制转换算法     在数字后面加上不同的字母来表示不同的进位制。     B(Binary) 表示二进制,O(Octal) 表示八进制,D(Decimal) 或不加表示十进制,H(Hexadecimal) 表示十六进制。     例如:(101011)B = (53)O = (43)D = (2B) H   1、(二、八、十六进制) → (十进制)               (1)二进制 → 十进制       方法: 二进制数从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去

2~16进制间任意进制转换器

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 02:43:55
一.程序运行截图(仅列举部分) 正数: (1)10->8 (连续五次不输入程序会自动结束哦) (2)10->2 (3)16->10 (4)8->16 负数: (1)10->2 (2)10->2 (3)8->16 二.扩展功能 1.可以识别正负数并输出,当输出为二进制时会自动将其补为有符号位的八位或十六位。 2.能在2至16所有进制间任意转换; 3输入错误时会报错并让你重新输入; 4.加了一个没卵用的随机数来使最后一句话随机输出。 三.介绍函数及其使用的全局变量对应的功能和作用 (1)radix函数 int radix(int n,char x[],int count) { int i; for(i=0;i<count;i++){ if(n!=2&&n!=3&&n!=4&&n!=5&&n!=6&&n!=7&&n!=8&&n!=9&&n!=10&&n!=11&&n!=12&&n!=13&&n!=14&&n!=15&&n!=16) return 1; if(x[i]>='a'&&x[i]<='f') x[i]-=87; if(x[i]>='0'&&x[i]<='9') x[i]-=48; if(x[i]>=n)return 1; } return 0; } 函数功能: 判断使用者输入的数和其输入的该数的进制是否匹配。 全局变量: n(存放使用者输入的进制)      x[]

函数+进制转换器v1.0beta

强颜欢笑 提交于 2019-12-04 02:31:28
1.运行成功的例子如下:(图片较多就不一 一列举) 一. 二. 三. 运行失败的例子如下: 一. 二. 三 . 2.函数介绍 一. char num2(int num)//将数字转换为字符类型,使得16进制也可以进行计算 { if (num >= 0 && num <= 9) { return (char)('0' + num); } else { return (char)('A' + num - 10); } } 二. int changeten(char a[],int n)//将其他进制转换为10进制 { int sum = 0, len,num,i; len = strlen(a); for (i = 0; i < len; i++) { if (a[i] >= '0' && a[i] <= '9') { num = a[i] - '0'; } else if (a[i] >= 'A' && a[i] <= 'F') { num = a[i] - 'A' + 10; } sum = sum * n + num; } return sum; } 三. void chageeverything(int b, int c)//将10进制转换为其他进制 { int count = 0, i; char a[10000]; while (b != 0) { a[count] =

函数+进制转换器v1.0beta

随声附和 提交于 2019-12-04 00:46:29
1.运行截图 输入正确时结果如下,其他转换运行结果类似,就不多贴图了。 输入不符合规范时: 2.额外扩展 如果输入错误格式,则重新输入,而不是结束程序从头再来。 运行结果如上图。 3.函数 (1)二进制转其他 void tr2(int option2) { int input = 0, i; char in[80]; A: scanf("%s", in); for (i=0; i<strlen(in); i++) /*判断是否为二进制数*/ { if (in[i] != '0' && in[i] != '1') { printf("请重新输入二进制数:"); goto A; } } for (i=0; i<strlen(in); i++) { input = input*10 + (in[i] - '0'); } switch (option2) /*根据选择结果分配给不同的转换函数*/ { case 1: transform_2_8(input); break; case 2: printf("转换结果:%d\n", transform_2_10(input)); break; case 3: transform_2_16(input); break; } } void transform_2_8(int n) { int sum = transform_2_10(n);

第二次博客作业之进制转换器

僤鯓⒐⒋嵵緔 提交于 2019-12-04 00:23:37
一、程序运行截图 1、二进制-->八进制+不继续       2、八进制-->十六进制+不继续        3、十进制-->十六进制+不继续      4、十六进制-->二进制+继续(十六进制-->八进制)             (接上图)       5、类型选择错误     6、输入不在进制范围      二、函数介绍 1、所有函数声明 void putmenu(void); //输入*选择菜单 void getmenu(void); //输出*选择菜单 void hint(int intype); //进一步提示菜单 int mypow(int m, int n); //自制pow函数 int judge(char number[], int intype); //判断所有进制数的输入是否在进制范围内 int convertdec(char number[], int intype); //全部进制都转为十进制 void converdinary(int newnum); //十进制转为二进制 void output(int newnum, int outtype); //最终输出结果 2、中间提示+输入输出菜单 void putmenu(void) { puts("^-^欢迎进入进制转换器初始界面!!!\n"); puts("请选择您要输入的进制类型为:

P1017 进制转换

家住魔仙堡 提交于 2019-12-03 21:10:56
题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减 11 1)为指数,以 1010 1 0为底数的幂之和的形式。例如: 123123 1 2 3可表示为 1×102+2×101+3×1001 \times 10^2+2\times 10^1+3\times 10^0 1 × 1 0 2 + 2 × 1 0 1 + 3 × 1 0 0这样的形式。 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值 −1-1 − 1)为指数,以 22 2为底数的幂之和的形式。一般说来,任何一个正整数 RR R或一个负整数 −R-R − R都可以被选来作为一个数制系统的基数。如果是以 RR R或 −R-R − R为基数,则需要用到的数码为 0,1,....R−10,1,....R-1 0 , 1 , . . . . R − 1。例如,当 R=7R=7 R = 7时,所需用到的数码是 0,1,2,3,4,50,1,2,3,4,5 0 , 1 , 2 , 3 , 4 , 5和 66 6,这与其是 RR R或 −R-R − R无关。如果作为基数的数绝对值超过 1010 1 0,则为了表示这些数码,通常使用英文字母来表示那些大于 99 9的数码。例如对 1616 1 6进制数来说,用 AA A表示 1010 1 0,用 BB

c# 进制转换-续

泄露秘密 提交于 2019-12-03 21:10:19
//将16进制的字符串转为byte数组 string str = "0C9C17AB"; string tmpstr = ""; byte[] buf; if (str.Length%2!=0) { str = "0"+str; } buf=new byte[str.Length/2]; for (int i = 0; i < str.Length/2; i++) { tmpstr= str.Substring(i*2,2); buf[i] =(byte)(Convert.ToInt32(tmpstr,16));//16表示前面值的基数。 } //将byte数据转为16进制字符串 byte[] buf = new byte[4]; buf[0] = 0x0C; buf[1] = 0x9C; buf[2] = 0x17; buf[3] = 0xAB; for (int i = 0; i < buf.Length; i++) { string str= Convert.ToString(buf[i], 16);//两个转换都可以,推荐使用下面的方法。 str= buf[i].ToString("x2"); } 来源: https://www.cnblogs.com/zhengxia/p/11809118.html

进制转换器

谁说我不能喝 提交于 2019-12-03 20:50:46
一.运行截图 1. 2. 3. 4. 5. 6. 7. 8. 二.函数功能介绍 1. int Tennum(char a[],int b)//将输入的数字转换为10进制数 { int len, i, num; int sum = 0; len = strlen(a);//求字符长度 for (i = 0; i < len; i++) { if (a[i] >= '0' && a[i] <= '9') { num = a[i] - '0'; } else if (a[i] >= 'A' && a[i] <= 'F') { num = a[i] - 'A' + 10; } sum = sum * b + num; } return sum; } 功能为将输入的数字通过字符串来存储,利用字符串的形式将不同的进制数转换为10进制数,并以整型将10进制数返回。 2. void Numchange(int m, int b)//将10进制数转化为任意进制数 { int n = m; int count = 0; if (m == 0) printf("0"); while (n != 0) { n = n / b; count++; } int number; for (int i = count; i >= 1; i--) { number = m / (int)pow(b, i - 1);

P1017 进制转换

强颜欢笑 提交于 2019-12-03 09:33:41
P1017 进制转换 题解 短除法进制转换 当取模数为负数??? 加上上面的操作就可以防止取模结果为负数啦 代码 #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<string> #include<cstring> #include<queue> #include<cmath> using namespace std; typedef long long ll; inline int read() { int ans=0; char last=' ',ch=getchar(); while(ch<'0'||ch>'9') last=ch,ch=getchar(); while(ch>='0'&&ch<='9') ans=ans*10+ch-'0',ch=getchar(); if(last=='-') ans=-ans; return ans; } const int maxn=1e5+10; int tot=0,a[maxn]; int n,m,mod; int main() { n=read();mod=read();m=n; while(n){ a[++tot]=n%mod; n/=mod; if(a[tot]<0) a[tot]=(a[tot]+(-mod))

python进制转换

隐身守侯 提交于 2019-12-03 08:25:11
python对进制转换十分方便,因为是读入字符串,所以省去了将数据以字符串处理的步骤。 以下总结一些python常用的进制转换方法: dec = int(input('10进制整形数为:'))//int型 print("转换为二进制为:", bin(dec)) //bin(),oct(),hex()分别转换成二,八,十六进制字符型 print("转换为八进制为:", oct(dec)) print("转换为十六进制为:", hex(dec)) string_2 = '101010' print('二进制字符串转换成十进制数为:',int(string_2,2)) string_8 = '367' print('八进制字符串转换成十进制数为:',int(string_8,8)) string_16 = 'FFF' print('十六进制字符串转换成十进制数为:',int(string_16,16)) 如果你不想输出0b , 0o 或者0x 的前缀的话,可以使用format() 函数 >>> format(x, 'b') //此时的x是整形 '10011010010' //format结果是str型 >>> format(x, 'o') '2322' >>> format(x, 'x') '4d2' 来源: https://www.cnblogs.com/yuanweidao/p