三进制算法
① 三进制怎么转十进制
- -!!
比如要把234这个数转为3进制数,步骤如下:
234 除以 3 等于78,余数为:0;
78 除以 3 等于26,余数为:0;
26 除以 3 等于8,余数为:2;
8 除以 3 等于 2,余数为:2;
2 除以 3 等于 0,余数为:2;
倒上去写,(十进制)234 == (三进制)22200
想把十进制的数字转为任何你能想到的任何进制,都可以用这个方法,当然这个方法是存在缺陷的,想深入研究的自己找书去学学吧。
嘿嘿,五楼的,你自己检查一下自己的算法吧,
“例如8(10)转化为8(2)那么就是1000方法是第一位的每一位的权值相加
从最后一位向前数,就是0,1,2,3次方即2(这个2表示2进制)X1的3次方+2(这个2表示2进制)X0的2次方+2(这个2表示2进制)X0的1次方+2(这个2表示2进制)X0的0次方=8”
是这样么?
是这样吧:
2(的3次方)X1+2(的2次方)X0+2(的1次方)X0+2(的0次方)X0=8
所以刚才我算出来那个数22200呢,是这样算的:
3(的4次方)X2+3(的3次方)X2+3(的2次方)X2+3(的1次方)X0+3(的0次方)X0=234
希望可以帮到你.!
② 把十进制的18化为三进制
18=8*10º+1*10¹
三进制算法应该是 a*3º+b*3¹+c*3².........
可以知道3º=1 3¹=3 3²=9
且三进制的位数里没有超过2的数,就像10进制的数里没有超过9的位数
那么可以轻松的看出2*3²就等于18
所以 200 就是你要的答案
自己再琢磨琢磨
希望对你有所帮助
③ 三进制如何转为十进制
整数部分,一般使用长除法,用基数除待转换数或上一步的商,求得余数或补数,直至最后的商为零。将各次余数从后往前排列,即为目标进制下的整数部分。
小数部分,一般使用长乘法,用基数乘待转换数或上一步的积,求得整数部分,将正数部分从前往后排列,即为目标进制下的小数部分正负数需要分别处理。
比如32.12转三进制:
一、整数部分:
32除以3商10余2
10除以3商3余1
3除以3商1余0
1除以3商0余1
所以整数部分是1012
二、小数部分:
0.12×3=0.39整数部分拿出0
0.39×3=1.17整数部分拿出1
0.17×3=0.51整数部分拿出0
0.51×3=1.53整数部分拿出1
0.53×3=1.59整数部分拿出1
依次类推直到余数为0或者达到要求的精度,比如到小数点后5位就为:0.01011二个结果用小数点连接即可:1012.01011
(3)三进制算法扩展阅读
三进制一般有两种表示形式:
一、以0,1,2为基本字符的表示形式。例如,365在这种表示形式中的写法是111112。
二、以-1,0,1为基本字符的表现形式。例如,365在这种表示形式中的写法是1TTTTTT(以T表示-1,负号置于1之上的象形)。这种表示法也被称作对称三进制或平衡三进制。
普通三进制和对称三进制的换算,将普通三进制数中的“2”替换为1T,并进行相应的进位计算即可转换为对称三进制。
对称三进制表示整数和浮点数并不需要额外的符号位。最高非零位为1的是正数、为T的是负数。参考二进制,对称三进制一个字节6位(+/-121)。
④ 如何计算三进制
十进制数换三进制短除三,三进制换十进制从个为数前每位×3的0,1,2... ...次方,然后所有位乘完后相加总值!
⑤ 三进制算法
满三进一嘛!
⑥ 十进制换算平衡三进制的算法
c代码,算法主要就是判断到余数是2的时候得处理,就是+-,高位留着累加到下次运算
intmain(){
intdec=25;
intter[32];
intlower=0,upper=0;
intindex=0;
do{
switch(dec%3){
case0:
lower=0+upper;
upper=0;
break;
case1:
lower=1+upper;
upper=0;
break;
case2:
lower=-1+upper;
upper=1;
break;
}
if(lower==2){
lower=-1;
upper++;
}
ter[index++]=lower;
dec/=3;
}while(dec>0);
if(upper==1)
ter[index]=upper;
else
index--;
for(inti=index;i>=0;i--){
charc;
switch(ter[i]){
case-1:
c='-';
break;
case0:
c='0';
break;
case1:
c='+';
break;
}
printf("%c",c);
}
return0;
}
⑦ 前苏联科学家发明出三进制,但为什么却没有延续下去
有分析认为2或者7进制效率最高最省设备,所以3进制显然比2进制要好,问题在于要表示这个3进制的三种截然不同的状态相对较难,虽然能用晶体管表示,但在存储过程中就不太容易找到相应的三态介质,所以二进制仍然大行其道。
走不下去了,发展遇到瓶颈。
因为会导致电子元件太难做,所以还是二进制更合适。如果换成三进制,那就代表要用三极管,成本更高,占的面积也更大,而且电子元件故障率也更高,特别是以前电子元件还没有精细化的情况下,都比较巨大,就有点不实际了。
⑧ 二进制、三进制、四进制等怎样和十进制相互转化
假设有二进制数10110,那么转化为十进制数为:
1*2^4+0*2^3+1*2^2+1*2^1+0*2^0
假设有三进制数2101,那么转化为十进制数为:
2*3^3+1*3^2+0*3^1+1*3^0
四进制也同理。
把十进制转化为二进制,用除法求余,其他进制的转化同理。
⑨ 三进制化为二进制算法
将三进制数整除以2(注意是三进制除法),得到商和余数,记下余数,这个余数就是二进制数的最低位;用商继续整除以2,再记下余数,这是二进制数的次低位;......一直到商为0为止,此时的余数是二进制数的最高位。然后按照从高到低的顺序,将各个步骤得到的余数串联起来,就是转换好的二进制数。
这个方法,适用于N进制数转换到M进制数。
⑩ 计算机科学界的重大突破——三进制计算机出现啦~经过科学家 X 的不断努力,三进制
这个问题跟所谓的什么三进制计算机没有关系~
然后回答你的问题,这问题总结起来就是一句话:对文本作哈夫曼编码。详细说来就是先扫描一遍文本、统计字符频率;然后根据频率构造哈夫曼树;最后得到哈夫曼编码方案,求得编码后的字符串长度。
实现代码大同小异搜一个即可。