【算法】十进制转换为二进制

打印 上一主题 下一主题

主题 836|帖子 836|积分 2512

目的:将十进制转换为二进制
思绪:
首先我们手算的情况是通过求余数算出进制数,同样代码也是通过做除法和求余数的方式,除法是得出下一次的被除数,而求余数是得到进制数
代码:
  1. #include<stdio.h>
  2. // 十进制转换为二进制,通过除法求余数
  3. void getTwo(int n) {
  4.         // res数组存放结果,div是要转换进制的数,mod是余数,flag是标记存放到数组的位置
  5.     int res[30]={0};
  6.     int div = n;
  7.     int mod = 0;
  8.     int flag;
  9.     for (flag=0; div!=0; flag++) {
  10.             // 如果要是十进制转换为八进制只需要修改下面的2为8即可,但是16进制需要重新写
  11.         mod = div % 2;
  12.         div = div / 2;
  13.         res[flag] = mod;
  14. //        res = res * 10 + mod;
  15.     }
  16.    
  17.     // 逆序输出二进制数
  18.         for (int i=flag-1; i>=0; i--) {
  19.                 printf("%d",res[i]);
  20.         }
  21. }
  22. int main() {
  23.     int n;
  24.     scanf("%d",&n);
  25.     getTwo(n);
  26.     return 0;
  27. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表