展开全部
代码设计如下:
int decToBin(int dec){
int result = 0,temp = dec,j = 1;
while(temp){
result = result + j*(temp%2);
temp = temp/2;
k = k*10;
}
return result;
十进制转二进制使用方法
除二取余法,十进制转k进制的方法常用的就是除e68a8462616964757a686964616f31333366306462k取余的方法,这里针对这个方法,给出了C++的代码。需要注意的是,除二取余的方法,对于余数的选取是从后往前取的,所以在代码中,也要解决这个问题才行。
思路分析
模仿不停地除2的过程,每次除2之后用 % 取余数i;用 / 作为下一次除2的被除数temp;j初始化为1,每次除了2之后,j = j*10。
最终输出的结果result在每次除2的迭代中,result = i*j + result;这个从后往前取余数的方法就是不断地result = i*j + result这样,不需要使用数组等方式逆序取了。
同时,也要考虑到十进制的负数如何转化,这里就是while(temp)来解决的。在while语句中,括号内的值只要不是0就为真,这样就包含了负数的问题。
四、总结