在java中如何用for循环把一个十进制数转换成二进制

[复制链接]
查看11 | 回复5 | 2017-10-6 11:49:15 | 显示全部楼层 |阅读模式
进制转换的思想抓住关键点,不管多少进制,一个数的值是不变。先搞清楚进制衡量了什么:n进制实际上代表一个数位与相邻数位之间的权重比,简单点说,相邻两位,一个高位的值代表n个低位。一个n进制的数,转换为一个m进制的数,基本过程就是反复的——对n进制表示的m取余,除以n进制表示的m。为什么不直接写除以m呢?举个例子,假设十进制数99转换为2进制,那么过程就是反复——取余,除以2;看起来是除以m了;那反过来,如果把二进制数1100011(十进制数99)转换为十进制呢?这是时候应该对1010(十进制数10)取余,除以1010。按问题要求代码如下:public static void main(String[] args) {
int a ...
回复

使用道具 举报

千问 | 2017-10-6 11:49:15 | 显示全部楼层
import java.io.*;import java.util.*;public class Test{/**因为最终的余数需要倒序输出,采用栈来记录*/public static void bdzd(int num , LinkedList[I]stack){if(num == 0) {stack.push(0); display(...
回复

使用道具 举报

千问 | 2017-10-6 11:49:15 | 显示全部楼层
static String toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 static String toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 static Stri...
回复

使用道具 举报

千问 | 2017-10-6 11:49:15 | 显示全部楼层
用scanf输入type后,scanf只读取了type的数据,而没有读取输入type之后的回车,缓冲区里还有一个回车,所以当再调用gets()后,只读取了一个回车,所以就没有输出了如果想用gets()读取的话,要先清空缓存,用这个函数fflush(stdin)...
回复

使用道具 举报

千问 | 2017-10-6 11:49:15 | 显示全部楼层
String x;//二进制数for(num;num>=2;num/2){
x+=num%2;}num是十进制的数对于没有小数的十进制可以转换了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行