(初学C++者必备)(只考虑正整数,比较容易看懂的)进行十进制转化为二进制

2022.09.25
人应该有力量,揪着自己的头发把自己从困境沼泽里拔出来。

声明思路来源:Foreigner_Y博主的原创文章
博主原文链接:https://blog.csdn.net/Foreigner_Y/article/details/96858420

一种尝试不用数组知识(学校没学到,所以不许用),利用短除法,以一种易懂的方式完成以下题目。

编写函数实现从键盘输入一个正整数,将其按照二进制进行输出。例如,将135打印成10000111。
/*
c和c++中没有提供提供二进制数的表达方法。有待探索数组的用法。
解题思路:定义一个变量j,j即位最终答案。
在每次循环中,利用用短除法循环将每个余数得到,
再按照余数需要倒叙排列的规律,以十进制的进制变化,使得最终结果表示为输入整数的2进制的样子, 
*/ 
#include
using namespace std;

long long int erjzh(int x){
	int yushu, weiquan=1; //定义变量存放余数和余数对应的十进制位权 
	long long int j=0; //定义变量存放最终结果,由于j实际上是一个表面上为二进制的十进制数,所以要使用longh long int 
	for(x;x>=1;x/=2){ //每次循环x的变化,当x=0是循环结束 
		yushu=x%2;
		j=j+yushu*weiquan; 
		weiquan*=10; //每次循环余数对应的十进制位权变化 
	}
	return j;
}

int main(){
	int a; //用户输入的整数 
	cout<<"请输入一个正整数:"; 
	cin>>a;
	cout<

只是做作业时寻找思路,希望分享给大家。

希望大家轻喷,侵权则删。

你可能感兴趣的:(C++语法基础,c++,开发语言)