在表示物体个数的时候,可以用1,2,3,4,5,…这些都是自然数。一个物体也没有,用0表示。0也是自然数。||10个一是十,10个十是一百,10个一百是一千。||10个一万是十万,10个十万是一百万,10个一百万是一千万。||10个一亿是十亿,10个十亿是一百亿,10个一百亿是一千亿。
二进制:计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
1、基数不同
前者满10进1,后者满2进1;
2、有效字符不同
前者有效字符有10个:0,1,2,3,4,5,5,6,7,8,9;后者有效字符有2个:0,1
10进制转化成二进制的方法就是:一个十进制数%2的余数然后倒叙输出:
#include
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;
}
二进制转换成十进制:从右至左依次为2得0次方…2的n-1次方.如果碰到1那么就乘1,如果遇到0那么就乘0,然后进行相加.
#include
#include
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;
}