1. 什么是十进制?
在表示物体个数的时候,可以用1,2,3,4,5,…这些都是自然数。一个物体也没有,用0表示。0也是自然数。||10个一是十,10个十是一百,10个一百是一千。||10个一万是十万,10个十万是一百万,10个一百万是一千万。||10个一亿是十亿,10个十亿是一百亿,10个一百亿是一千亿。
2.什么是二进制?
二进制:计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
3.十进制和二进制的关系:
1、基数不同
前者满10进1,后者满2进1;
2、有效字符不同
前者有效字符有10个:0,1,2,3,4,5,5,6,7,8,9;后者有效字符有2个:0,1
4.实战项目:
4.1十进制转二进制:
4.1.1基本思路:
10进制转化成二进制的方法就是:一个十进制数%2的余数然后倒叙输出:
草图展示
4.1.2代码展示:
#include<iostream> using namespace std; void er(int n) { int t=0; if(n!=0) { t=n%2; //得到余数 n=n/2; //得到商 er(n); //用商继续得余数,并达到倒排得效果 cout << t; } } int main() { int m; cout << "请输入一个十进制的数字" << endl; cin >> m; cout << "二进制为," << endl; er(m); return 0; }
4.1.3效果展示:
4.2二进制转十进制:
4.2.1基本思路:
二进制转换成十进制:从右至左依次为2得0次方…2的n-1次方.如果碰到1那么就乘1,如果遇到0那么就乘0,然后进行相加.
草图展示
4.2.2代码展示:
#include <iostream> #include <string.h> using namespace std; int main() { int sum = 0; cout << "请输入二进制为:" << endl; string s; cin >> s; if (s.length() == 1) //假如说长度为1,就两种可能 { if (s[0] =='1') // { cout << s << "转换成十进制为:" << 1 << endl; } else cout << s << "转换成十进制为:" << 0 << endl; } else { for (int i = 0; i < s.length(); i++) //假如说长度不为1, { if (s[i] == '1') // 判断是否为1,如果为1就运行。为0就直接跳过 { int sum1 = 1; for (int j = 0; j < s.length() - i - 1; j++) { sum1 = sum1 * 2; } sum = sum + sum1; } } cout << s << "转换为十进制后为:" << sum << endl; } return 0; }
4.2.3效果展示: