返回 课程
信奥AC之路-3级
0% 完成
0/0 步骤
-
第一课:数组基础4 主题|小节
-
第二课:数组基础二6 主题|小节
-
第三课:数组基础三6 主题|小节
-
第四课:数组基础四7 主题|小节
-
第五课:数组基础五5 主题|小节
-
第六课:数组用于统计,去重,排序5 主题|小节
-
第七课:冒泡排序6 主题|小节
-
第八课:数组连续性元素6 主题|小节
-
第九课:数组综合一7 主题|小节
-
第十课:字符数组7 主题|小节
-
第十一课:字符数组基础应用5 主题|小节
-
第十二课:字符数组基础应用二6 主题|小节
-
第十三课:字符数组进阶6 主题|小节
-
第十四课:字符串进阶二6 主题|小节
-
第十五课:字符串(STL)9 主题|小节
-
第十六课:字符串基础6 主题|小节
-
第十七课:字符串函数6 主题|小节
-
第十八课:字符串函数二4 主题|小节
-
第十九课:sort函数7 主题|小节
-
第二十课:字符串进阶7 主题|小节
-
第二十一课:字符串进阶二6 主题|小节
-
第二十二课:进制转换--十进制转其他进制5 主题|小节
-
第二十三课:进制转换--其他进制转十进制5 主题|小节
-
第二十四课:二进制,八进制,十六进制转换5 主题|小节
-
第二十五课:数据编码基础6 主题|小节
-
第二十六课:位运算基础6 主题|小节
课 进展
0% 完成
“小朋友们,”我微笑着说,”计算机内部使用的是二进制,也就是只有0和1两个数字。今天我们先来学习如何把我们熟悉的十进制数转换成二进制数。”
22.1.1 补充原理
十进制转二进制的原理是:不断地除以2取余数,然后将余数倒序排列就得到了二进制数。
22.1.2 正整数N转换成一个二进制数
题目描述: 输入一个不大于 32767 的整数 n ,将它转换成一个二进制数。
输入格式: 输入只有一行,包括一个整数 n (0≤n≤32767)。
输出格式: 输出只有一行。
样例输入1:
100
样例输出1:
1100100
样例输入2:
0
样例输出2:
0
代码实现:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin >> a; // 输入要转换的十进制数
string s; // 用字符串存储二进制结果
if(a == 0) s = "0"; // 特殊处理:0的二进制还是0
while(a){ // 当a不为0时继续循环
s = char(a%2 + '0') + s; // 取余数并转为字符,加到字符串前面
a /= 2; // 除以2,准备下一轮
}
cout << s; // 输出二进制结果
return 0;
}
算法解析:
- 特殊处理输入为0的情况,直接输出”0″
- 使用循环,每次取a除以2的余数(0或1)
- 将余数转换为字符并加到结果字符串的前面
- 将a除以2,继续下一轮循环
- 循环结束后,字符串s中存储的就是二进制结果