当前位置:首页 » 操作系统 » 进制计算法

进制计算法

发布时间: 2022-05-20 05:25:28

⑴ 进制计算方法 详细算法

c++进制转换程序:
这是一个结构完整、功能完善的程序,通过压栈来实现进制转换、出栈实现结果输出:
#include<iostream.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
SqStack S;
void InitStack(SqStack &S1)
{
S1.base=(int *)malloc(100*sizeof(int));
S1.top=S1.base;
S1.stacksize=STACK_INIT_SIZE;
}
void Push(SqStack &S2,int e)
{
*S2.top++=e;
}
void Pop(SqStack &S3,int &e)
{
e=* --S3.top;
}
void tentotwo(int n)
{
while(n)
{
Push(S,n%2);
n=n/2;
}
cout<<"转成的二进制数是:"<<endl;
while(S.top!=S.base)
{
int e;
Pop(S,e);
cout<<e;
}
cout<<endl;
}
void tentoeight(int n)
{
while(n)
{
Push(S,n%8);
n=n/8;
}
cout<<"转成的八进制数是:"<<endl;
while(S.top!=S.base)
{
int e;
Pop(S,e);
cout<<e;
}
cout<<endl;
}

void tentosixteen(int n)
{
while(n)
{
Push(S,n%16);
n=n/16;
}
cout<<"转成的十六进制数是:"<<endl;
while(S.top!=S.base)
{
int e;
Pop(S,e);
switch(e)
{
case 10: cout<<'A';
break;
case 11: cout<<'B';
break;
case 12: cout<<'C';
break;
case 13: cout<<'D';
break;
case 14: cout<<'E';
break;
case 15: cout<<'F';
break;
}
cout<<e;
}
cout<<endl;
}

int main()
{
InitStack(S);
f:
cout<<"请选择您想进行的操作:1.十进制转换成二进制 2.十进制转换成八进制 3.十进制转换成十六进制"<<endl;
int a,m;
cin>>a;
switch (a)
{
case 1:
{
cout<<"请输入一个十进制数"<<endl;
cin>>m;
tentotwo(m);
break;
}
case 2:
{
cout<<"请输入一个十进制数"<<endl;
cin>>m;
tentoeight(m);
break;
}
case 3:
{
cout<<"请输入一个十进制数"<<endl;
cin>>m;
tentosixteen(m);
break;
}
}
goto f;
return 0;
}

⑵ 生活中还有哪些进制计数法

生活中的进制计数法有:四进制、五进制、十进制、十二进制、三十进制。

⑶ 二进制的计算方法是怎样的请举个例子谢谢,

二进制的运算算术运算二进制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位进位);即7=111,10=10103=11。

二进制的减法:0-0=0,0-1=1(向高位借位) 1-0=1,1-1=0 (模二加运算或异或运算) ;

二进制的乘法:0 * 0 = 00 * 1 = 0,1 * 0 = 0,1 * 1 = 1 二进制的除法:0÷0 = 0,0÷1 = 0,1÷0 = 0 (无意义),1÷1 = 1 ;

逻辑运算二进制的或运算:遇1得1 二进制的与运算:遇0得0 二进制的非运算:各位取反。

(3)进制计算法扩展阅读:

二进制的转换:

二进制转换为其他进制:

1、二进制转换成十进制:基数乘以权,然后相加,简化运算时可以把数位数是0的项不写出来,(因为0乘以其他不为0的数都是0)。小数部分也一样,但精确度较少。

2、二进制转换为八进制:采用“三位一并法”(是以小数点为中心向左右两边以每三位分组,不足的补上0)这样就可以轻松的进行转换。例:将二进制数(11100101.11101011)2转换成八进制数。 (11100101.11101011)2=(345.353)8

3、二进制转换为十六进制:采用的是“四位一并法”,整数部分从低位开始,每四位二进制数为一组,最后不足四位的,则在高位加0补足四位为止,也可以不补0。

小数部分从高位开始,每四位二进制数为一组,最后不足四位的,必须在低位加0补足四位,然后用对应的十六进制数来代替,再按顺序写出对应的十六进制数。

⑷ 10进制转16进制的计算方法是怎样的

10进制转16进制的计算方法是对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。具体的过程如下:

比如要转换120为十六进制数:

1、把要转换的数,除以16,得到商和余数,

2、那么要转换的数是120, 120 ÷ 16,得到商是7,余数是8。

3、“将商继续除以16,直到商为0……”,现在商是7,还不是0,所以继续除以16。那就 7 ÷ 16, 得到商是0,余数是7。现在商已经是0。

4、我们两次计算依次得到余数分别是:8、7,将所有余数倒序排列,那就是:78。

注意事项:

1、对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

2、进制转换是人们利用符号来计数的方法,进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。

⑸ 十六进制计算方法

0-9对应0-9;

A-F对应10-15;

十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。

十六进制数同二进制数及十进制数一样,也可以写成展开式的形式。

十进制整数转十六进制数:“除以16取余,逆序排列”(除16取余法)

例:(1765)10=(6E5)2

1765/16=110.......5

110/16=6........14

616=0......6

因为14对应E

十六进制数转换成二进制数:把每一个十六进制数转换成4位的二进制数,就得到一个二进制数。

十六进制数字与二进制数字的对应关系如下:

0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C

0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D

0010 -> 2 0110 -> 6 1010 -> A 1110 -> E

0011 -> 3 0111 -> 7 1011 -> B 1111 -> F

例:将十六进制数5DF.9 转换成二进制:

5 D F . 9 0101 1101 1111 .1001

即:(5DF.9)16 =(10111011111.1001)2

例:将二进制数1100001.111 转换成十六进制:

0110 0001 . 1110 6 1 . E

即:(1100001.111)2 =(61.E)16

(5)进制计算法扩展阅读:

进制转换的理论:

1、 二进制数、十六进制数转换为十进制数:

用按权展开法把一个任意R 进制数a n a n-1 ...a1a 0 . a -1 a -2...a -m转换成十进制数,其十进制数值为每一位数字与其位权之积的和。

a n ×Rn+ a n-1×R n-1 +…+ a 1×R 1 + a 0×R 0 + a -1 ×R -1+ a -2×R -2+ …+ a -m ×R -m

2、 十进制转化成R 进制十进制数轮换成R 进制数要分两个部分:

整数部分要除R 取余数,直到商为0,得到的余数即为二进数各位的数码,余数从右到左排列(反序排 列) 。小数部分要乘R 取整数,得到的整数即为二进数各位的数码,整数从左到右排列(顺序排列) 。

3、十六进制转化成二进制:每一位十六进制数对应二进制的四位,逐位展开。

4、 二进制转化成十六进制:将二进制数从小数点开始分别向左(对二进制整数)或向右(对二进制小数)每四位组成一组,不足四位补零。

⑹ 进制转换算法是怎么算

很简单的,给你看两个例子你就明白了。
十进制转二进制:用2辗转相除取余至到结果为1,将余数和最后的1从下向上倒序写就是结果
例如 :302 转换成二进制
302/2 = 151余0
151/2 = 75余1
75/2 = 37余1
37/2 = 18余1
18/2 = 9余0
9/2 = 4余1
4/2 = 2余0
2/2 = 1余0
所以,二进制就是100101110
二进制转十进制:从最后一位开始算,依次列为第0、1、2...n 位,第n位数(0或1)分别乘以2的n次方,最后相加就是结果
例如:01101011 转十进制:
第0位:1乘2的0次方=1
第1位:1乘2的1次方=2
第2位:0乘2的2次方=0
第3位:1乘2的3次方=8
第4位:0乘2的4次方=0
第5位:1乘2的5次方=32
第6位:1乘2的6次方=64
第7位:0乘2的7次方=0
然后:1+2+0+8+0+32+64+0=107.所以,十进制就是107

⑺ 二进制转换成十六进制计算方法

二进制转十六进制方法为:十六进制是取四合一,即从二进制的小数点为分界点,向左(或向右)每四位取成一位;

组分好以后,对照二进制与十六进制数的对应表,将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列,小数点的位置不变哦,最后得到的就是十六进制数

(注意事项:4位二进制转成十六进制是从右到左开始转换,不足时补0)。

(7)进制计算法扩展阅读:

进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。

基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。

“数制”只是一套符号系统来表示指称“量”的多少。我们用“1”这个符号来表示一个这一“量”的概念。自然界的“量”是无穷的,我们不可能为每一个“量”都造一个符号,这样的系统没人记得住。

所以必须用有限的符号按一定的规律进行排列组合来表示这无限的“量”。符号是有限的,这些符号按照某种规则进行排列组合的个数是无限的。十进制是10个符号的排列组合,二进制是2个符号的排列组合。

在进行进制转换时有一基本原则:转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。

参考资料:网络-进制转换

⑻ 进制计数法有哪些

2进制、8进制、10进制和16进制。

⑼ 有哪些进制计数法

一般常用的有2进制,8进制,10进制,16进制

2进制在计算机领域中应用最广泛,然后是16进制表示微机中的地址,10进制则是平常应用中的。8进制相对来说应用少一点。

热点内容
FTP服务器本地策略 发布:2025-01-13 13:20:47 浏览:485
地下城堡2挂机脚本 发布:2025-01-13 13:20:44 浏览:205
web云服务器配置 发布:2025-01-13 13:19:54 浏览:459
小康密码是多少 发布:2025-01-13 13:19:13 浏览:41
javafile类 发布:2025-01-13 13:19:08 浏览:83
c语言求逆 发布:2025-01-13 13:14:43 浏览:929
中控大屏怎么看配置 发布:2025-01-13 13:11:33 浏览:912
linux多行删除 发布:2025-01-13 13:06:01 浏览:200
传奇3脱机脚本 发布:2025-01-13 13:05:08 浏览:751
java请求https 发布:2025-01-13 12:53:35 浏览:868