挑战CPU运算能力2-输出十进制、二进制、八进制及十六进制对照表(Table of Binary, Octal and Hexadecimal Numbers)

花了1个多小时写的,有一定的实用性和健壮性,挺有成就感的。

 

理由:

1. 生成对照表,省去十进制转码时间,输出结果导入数据库后,可供快速查询

2.经过在Windows 8自带计算器的programmer mode中的对比测试,转换结果是正确无误的

3.十进制转其他进制,使用了一套逻辑,一个方法,简单、可靠

4.增加了时间戳,程序运行结束时,会显示用时。调试程序时输入较大的数字时,输出对照表需要较长时间,可用此程序对比测试不同计算机的运算速度。

PS:刚好买了新的游戏本,回家测测看。

 

代码如下:

package example;
//JHTP Exercise 6.34: Table of Binary, Octal and Hexadecimal Numbers
//by pandenghuang@163.com
/**(Table of Binary, Octal and Hexadecimal Numbers) Write an application that displays a
table of the binary, octal and hexadecimal equivalents of the decimal numbers in the range 1
through 256. If you aren’t familiar with these number systems, read online Appendix J first.*/
import java.util.Scanner;
import java.util.Date;

public class NumberConversion 
{
	public static String convert(int number,int system){
		//10->10/2=5,10%2=0->5/2=2,5%2=1->2/2=1,2%2=0->1010
		//2->2/2=1,2%2=0
		String result="";
		boolean flag=true;
		int left=0;
		do{
			switch (number%system){
			case 0: case 1: case 2: case 3: case 4: 
			case 5: case 6: case 7: case 8: case 9:
				result+=number%system;
				break;
			case 10:
				result+='A';
				break;
			case 11:
				result+='B';
				break;
			case 12:
				result+='C';
				break;
			case 13:
				result+='D';
				break;
			case 14:
				result+='E';
				break;
			case 15:
				result+='F';
				break;
			}
			
			left=number/system;
			if (left>1)
				number=left;
			else if(left==1){
				result+=1;
				flag=false;
				break;
				}
			else if(left==0){
				break;
			}
				
		}
		while(flag);
		return result;

	}
	
	
	public static void toHex(int number){

	}
	
public static void main(String[] args)
{
	int size=0;
	String converted="";
	long beginTime=0;
	long endTime=0;
	double duration=0.0; //分钟

	Scanner input=new Scanner(System.in);
	
	do {
		System.out.print("请输入数据上限(十进制整数,输入-1退出):");
		size=input.nextInt();
		if(size==-1)
			System.out.print("已退出程序");
		else
		{
			beginTime=new Date().getTime();
			System.out.print("十进制\t二进制\t八进制\t十六进制\t\n");
			for(int i=1;i<=size;i++){
				//输出十进制数字
				System.out.print(i+"\t");
				
				//输出二进制数字
				converted=convert(i,2);
				for (int j=converted.length()-1;j>=0;j--)
					System.out.print(converted.charAt(j));
				System.out.print("\t");
				
				//输出八进制数字
				converted=convert(i,8);
				for (int j=converted.length()-1;j>=0;j--)
					System.out.print(converted.charAt(j));
				System.out.print("\t");
				
				//输出十六进制数字
				converted=convert(i,16);
				for (int j=converted.length()-1;j>=0;j--)
					System.out.print(converted.charAt(j));
				System.out.print("\t");
					System.out.println();

			}
		
			System.out.println();
			endTime=new Date().getTime();
			duration=(double)(endTime-beginTime)/1000/60;
			System.out.printf("共用时%.2f分钟\n",duration);
			
		}
	} 
	while (size!=-1);
}
}

 

运行结果:

请输入数据上限(十进制整数,输入-1退出)256

十进制           二进制           八进制           十六进制     

1                      1                      1                      1                     

2                      10                   2                      2                     

3                      11                   3                      3                     

4                      100                 4                      4                     

5                      101                 5                      5                     

6                      110                 6                      6                     

7                      111                 7                      7                     

8                      1000              10                   8                     

9                      1001              11                   9                     

10                   1010              12                   A                     

11                   1011              13                   B                     

12                   1100              14                   C                     

13                   1101              15                   D                    

14                   1110              16                   E                     

15                   1111              17                   F                     

16                   10000            20                   10                  

17                   10001            21                   11                  

18                   10010            22                   12                  

19                   10011            23                   13                  

20                   10100            24                   14                  

21                   10101            25                   15                  

22                   10110            26                   16                  

23                   10111            27                   17                  

24                   11000            30                   18                  

25                   11001            31                   19                  

26                   11010            32                   1A                  

27                   11011            33                   1B                  

28                   11100            34                   1C                  

29                   11101            35                   1D                  

30                   11110            36                   1E                   

31                   11111            37                   1F                   

32                   100000         40                   20                  

33                   100001         41                   21                  

34                   100010         42                   22                  

35                   100011         43                   23                  

36                   100100         44                   24                  

37                   100101         45                   25                  

38                   100110         46                   26                  

39                   100111         47                   27                  

40                   101000         50                   28                  

41                   101001         51                   29                  

42                   101010         52                   2A                  

43                   101011         53                   2B                  

44                   101100         54                   2C                  

45                   101101         55                   2D                  

46                   101110         56                   2E                   

47                   101111         57                   2F                   

48                   110000         60                   30                  

49                   110001         61                   31                  

50                   110010         62                   32                  

51                   110011         63                   33                  

52                   110100         64                   34                  

53                   110101         65                   35                  

54                   110110         66                   36                  

55                   110111         67                   37                  

56                   111000         70                   38                  

57                   111001         71                   39                  

58                   111010         72                   3A                  

59                   111011         73                   3B                  

60                   111100         74                   3C                  

61                   111101         75                   3D                  

62                   111110         76                   3E                   

63                   111111         77                   3F                   

64                   1000000       100                 40                  

65                   1000001       101                 41                  

66                   1000010       102                 42                  

67                   1000011       103                 43                  

68                   1000100       104                 44                  

69                   1000101       105                 45                  

70                   1000110       106                 46                  

71                   1000111       107                 47                  

72                   1001000       110                 48                  

73                   1001001       111                 49                  

74                   1001010       112                 4A                  

75                   1001011       113                 4B                  

76                   1001100       114                 4C                  

77                   1001101       115                 4D                  

78                   1001110       116                 4E                   

79                   1001111       117                 4F                   

80                   1010000       120                 50                  

81                   1010001       121                 51                  

82                   1010010       122                 52                  

83                   1010011       123                 53                  

84                   1010100       124                 54                  

85                   1010101       125                 55                  

86                   1010110       126                 56                  

87                   1010111       127                 57                  

88                   1011000       130                 58                  

89                   1011001       131                 59                  

90                   1011010       132                 5A                  

91                   1011011       133                 5B                  

92                   1011100       134                 5C                  

93                   1011101       135                 5D                  

94                   1011110       136                 5E                   

95                   1011111       137                 5F                   

96                   1100000       140                 60                  

97                   1100001       141                 61                  

98                   1100010       142                 62                  

99                   1100011       143                 63                  

100                 1100100       144                 64                  

101                 1100101       145                 65                  

102                 1100110       146                 66                  

103                 1100111       147                 67                  

104                 1101000       150                 68                  

105                 1101001       151                 69                  

106                 1101010       152                 6A                  

107                 1101011       153                 6B                  

108                 1101100       154                 6C                  

109                 1101101       155                 6D                  

110                 1101110       156                 6E                   

111                 1101111       157                 6F                   

112                 1110000       160                 70                  

113                 1110001       161                 71                  

114                 1110010       162                 72                  

115                 1110011       163                 73                  

116                 1110100       164                 74                  

117                 1110101       165                 75                  

118                 1110110       166                 76                  

119                 1110111       167                 77                  

120                 1111000       170                 78                  

121                 1111001       171                 79                  

122                 1111010       172                 7A                  

123                 1111011       173                 7B                  

124                 1111100       174                 7C                  

125                 1111101       175                 7D                  

126                 1111110       176                 7E                   

127                 1111111       177                 7F                   

128                 10000000    200                 80                  

129                 10000001    201                 81                  

130                 10000010    202                 82                  

131                 10000011    203                 83                  

132                 10000100    204                 84                  

133                 10000101    205                 85                  

134                 10000110    206                 86                  

135                 10000111    207                 87                  

136                 10001000    210                 88                  

137                 10001001    211                 89                  

138                 10001010    212                 8A                  

139                 10001011    213                 8B                  

140                 10001100    214                 8C                  

141                 10001101    215                 8D                  

142                 10001110    216                 8E                   

143                 10001111    217                 8F                   

144                 10010000    220                 90                  

145                 10010001    221                 91                  

146                 10010010    222                 92                  

147                 10010011    223                 93                  

148                 10010100    224                 94                  

149                 10010101    225                 95                  

150                 10010110    226                 96                  

151                 10010111    227                 97                  

152                 10011000    230                 98                  

153                 10011001    231                 99                  

154                 10011010    232                 9A                  

155                 10011011    233                 9B                  

156                 10011100    234                 9C                  

157                 10011101    235                 9D                  

158                 10011110    236                 9E                   

159                 10011111    237                 9F                   

160                 10100000    240                 A0                  

161                 10100001    241                 A1                  

162                 10100010    242                 A2                  

163                 10100011    243                 A3                  

164                 10100100    244                 A4                  

165                 10100101    245                 A5                  

166                 10100110    246                 A6                  

167                 10100111    247                 A7                  

168                 10101000    250                 A8                  

169                 10101001    251                 A9                  

170                 10101010    252                 AA                  

171                 10101011    253                 AB                  

172                 10101100    254                 AC                  

173                 10101101    255                 AD                  

174                 10101110    256                 AE                   

175                 10101111    257                 AF                   

176                 10110000    260                 B0                  

177                 10110001    261                 B1                  

178                 10110010    262                 B2                  

179                 10110011    263                 B3                  

180                 10110100    264                 B4                  

181                 10110101    265                 B5                  

182                 10110110    266                 B6                  

183                 10110111    267                 B7                  

184                 10111000    270                 B8                  

185                 10111001    271                 B9                  

186                 10111010    272                 BA                  

187                 10111011    273                 BB                  

188                 10111100    274                 BC                  

189                 10111101    275                 BD                  

190                 10111110    276                 BE                   

191                 10111111    277                 BF                   

192                 11000000    300                 C0                  

193                 11000001    301                 C1                  

194                 11000010    302                 C2                  

195                 11000011    303                 C3                  

196                 11000100    304                 C4                  

197                 11000101    305                 C5                  

198                 11000110    306                 C6                  

199                 11000111    307                 C7                  

200                 11001000    310                 C8                  

201                 11001001    311                 C9                  

202                 11001010    312                 CA                  

203                 11001011    313                 CB                  

204                 11001100    314                 CC                  

205                 11001101    315                 CD                  

206                 11001110    316                 CE                   

207                 11001111    317                 CF                   

208                 11010000    320                 D0                  

209                 11010001    321                 D1                  

210                 11010010    322                 D2                  

211                 11010011    323                 D3                  

212                 11010100    324                 D4                  

213                 11010101    325                 D5                  

214                 11010110    326                 D6                  

215                 11010111    327                 D7                  

216                 11011000    330                 D8                  

217                 11011001    331                 D9                  

218                 11011010    332                 DA                  

219                 11011011    333                 DB                  

220                 11011100    334                 DC                  

221                 11011101    335                 DD                 

222                 11011110    336                 DE                  

223                 11011111    337                 DF                  

224                 11100000    340                 E0                   

225                 11100001    341                 E1                   

226                 11100010    342                 E2                   

227                 11100011    343                 E3                   

228                 11100100    344                 E4                   

229                 11100101    345                 E5                   

230                 11100110    346                 E6                   

231                 11100111    347                 E7                   

232                 11101000    350                 E8                   

233                 11101001    351                 E9                   

234                 11101010    352                 EA                   

235                 11101011    353                 EB                   

236                 11101100    354                 EC                   

237                 11101101    355                 ED                  

238                 11101110    356                 EE                   

239                 11101111    357                 EF                   

240                 11110000    360                 F0                   

241                 11110001    361                 F1                   

242                 11110010    362                 F2                   

243                 11110011    363                 F3                   

244                 11110100    364                 F4                   

245                 11110101    365                 F5                   

246                 11110110    366                 F6                   

247                 11110111    367                 F7                   

248                 11111000    370                 F8                   

249                 11111001    371                 F9                   

250                 11111010    372                 FA                   

251                 11111011    373                 FB                   

252                 11111100    374                 FC                   

253                 11111101    375                 FD                  

254                 11111110    376                 FE                   

255                 11111111    377                 FF                   

256                 100000000  400                 100                

 

共用时0.00分钟

 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值