- gf24153 的博客
《Mod笔谈:进制那些事》
- @ 2026-7-11 15:19:10
前言
八下暑假逐渐高产,可能是只剩一年了吧哈哈哈
这辈子没有一天更新个4篇的
进制,在数学的概念为满多少进一位
例如我们最常用的十进制,就是满十进一
而钟表常用的六十进制,就是满六十进一
而电脑中的二进制,就是满二进一
为什么电脑用的是二进制呢?因为电脑储存数据用的是二极管,二极管只有两种状态,所以他只能表示两个数:1,0。能满足这条件的只有二进制。
那么我们如何把十进制转变为二进制呢。
因为二进制满二进一的特性,我们可以除以二,然后剩下的余数就是没满二不能进的,我们就把他写到最后一位,然后剩下的要进位,我们就要除以二然后进位,然后再循环,直到全部算完为止。(整个二进制数可以用栈表示,这样最早算出的数正好为最后输出的数)
代码演示
#将n转变为a进制数的方法
while(n){ #当n除尽时结束
s.push(n%a);
n/=a;
}
那么怎么将二进制数转化为十进制数呢?
我们可以发现,二进制数的最后一位因为没有除过一次二,所以他上面的 所代表的数为 (在十进制中,我们管他叫个位数),而后面每增加一位,他所代表的数就乘
代码就如下啦
# 将a进制数转变为十进制数的方法
int i=1;
while(s){
n+=s[i]*pow(2,i-1);
i++;
}