- 初识计算机语言我们会了解到计算机内部是采用二进制计算的,因此我们会对10进制数字转换成2进制数字比较熟悉,比如十进制1即为二进制0001,十进制10为二进制0101…(这里取四位举例)。但这其中转换的数学方法是什么呢?
- 这里运用的是模2除2的思想,即现对2取模,再除以2,下面我会画图解释:以十进制10转换为二进制1010为例:
- 这两步操作即为转换方法的核心思想,取模代表的是取出二进制表达中的最后一位,除2代表消去最后一位,如上图,10对2取模之后,得到0,即1010的最后一位0,随后10除以2得到5,不难发现5的二进制表达为101,是1010将最后一位0去掉的结果。下面我们重复以上操作,直到除以2得到的是0结束。
- 经过这八步,将每次取模得到的数字组合起来即为1010,转换成功。这样的不断%2 ,/2的过程我们可以用循环来实现。
int main()
{int arr[20] = {0 };
int n = 0;
scanf("%d", &n);
int i = 0;
while (n)
{arr[i++] = n % 2;//运用%2 ,/2的方法
n /= 2;
}
for (--i; i >= 0; i--)//由于存进去的顺序是反的,要倒着打印出来
{printf("%d", arr[i]);
}
return 0;
}
- 关于为什么%2可以得到最后一位我们可以这样理解:我们遇到过一种问题让我们取出十进制数字的每一位,比如123,我们运用的方法就是先对123%10,得到3,即最后一位,第二步我们再对123/10,得到12,即123去掉最后一位3的结果,以此类推即能得到123的每一位1,2,3。
- 上述是十进制数得到十进制每一位的办法即%10,/10,那么可以进行类比,十进制得到其二进制表达的每一位我们就%2,/2,我们还可以得到其六进制表达的方法,即%6,/6…
- 如上图代码,我们可以用%6,/6的方法轻松得到十进制数10的六进制表示14。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
在南谯等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站设计 网站设计制作按需网站设计,公司网站建设,企业网站建设,
高端网站设计,
全网整合营销推广,
外贸网站建设,南谯网站建设费用合理。
网页标题:C语言进制转换(十进制转n进制)-创新互联
文章源于:
http://cdweb.net/article/dhdece.html