软帝学院:java十进制、八进制、十六进制数互相转换

java-十进制、八进制、十六进制数互相转换

下面是一个十进制、八进制、十六进制数互相转换的小程序


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247


public class JZTurn {

public static void main(String[] args) {

int num2 = 1314521;

System.out.println("十进制数:"+num2);

System.out.println("十进制转换二进制:"+turn2(num2));

System.out.println("十进制转换八进制:"+turn8(num2));

System.out.println("十进制转换十六进制:"+turn16(num2));

//2-> 8

System.out.println("二进制转换八进制:"+twoTurnEight(turn2(num2)));

System.out.println("八进制转换二进制:"+eightTurnTwo(turn8(num2)));

System.out.println("八进制转换十六进制:"+eightTurnSixteen(turn8(num2)));

//2->16

System.out.println("二进制转换十六进制:"+twoTurnSixteen(turn2(num2)));

}

/**

* 10进制转二进制

* @param num

* @return

*/

public static String turn2(int num){

String shortTimeNum = "";

int remainder = 0;

/**

* 模拟短除法

*/

while(num >= 1){

remainder = num % 2;

num = num / 2;

shortTimeNum = remainder + shortTimeNum;

}

return shortTimeNum;

}

/**

* 10进制转8进制

* @param num

* @return

*/

public static String turn8(int num){

String shortTimeNum = "";

int remainder = 0;

/**

* 模拟短除法

*/

while(num >= 1){

remainder = num % 8;

num = num / 8;

shortTimeNum = remainder + shortTimeNum;

}

return shortTimeNum;

}

/**

* 10进制转16进制

* @param num

* @return

*/

public static String turn16(int num){

String shortTimeNum = "";

int remainder = 0;

String tempStr = "";

/**

* 模拟短除法

*/

while(num >= 1){

remainder = num % 16;

tempStr = getOtherNum(remainder);

num = num / 16;

shortTimeNum = tempStr + shortTimeNum;

}

return shortTimeNum;

}

/**

* 2进制转换8进制

* 概念说明:这里转换的是整数,从右向左三位一组分别乘以2的零次方,2的一次方,2的2次方

* 然后把每组中的数相加,再把各组从左向右拼接到一起

* @param strNum2

*/

public static String twoTurnEight(String strNum2){

String resultNum = "";

int remainder = strNum2.length() % 3;

//补位 三位一组,最后一组位数不够用0补充

switch(remainder){

case 1:

strNum2 = "00"+strNum2;

break;

case 2:

strNum2 = "0"+strNum2;

break;

}

int index = strNum2.length()-1;

int tempNum1 = 0;

int tempNum2 = 0;

int tempNum3 = 0;

while(index>=1){

index -- ;

if(index % 3 == 0){

//每个数为一组

tempNum1 = Integer.parseInt(strNum2.substring(index, index+1));

tempNum2 = Integer.parseInt(strNum2.substring(index+1, index+2));

tempNum3 = Integer.parseInt(strNum2.substring(index+2, index+3));

resultNum = tempNum3*1+tempNum2*2+tempNum1*4+resultNum;

}

}

return resultNum;

}

/**

* 八进制转换二进制

* @param eightNum

* @return

*/

public static String eightTurnTwo(String eightNum){

String twoNum = "";

int index = eightNum.length()-1;

String tempNum = "";

while(index>=0){

tempNum = turn2(Integer.parseInt(eightNum.substring(index, index+1))) ;

//补位,在转换8进制时是每三为二进制数为一组,转换回二进制时位数也需要是三位,不够用零补

switch (tempNum.length()) {

case 1:

tempNum = "00"+tempNum;

break;

case 2:

tempNum = "0"+tempNum;

break;

}

twoNum = tempNum + twoNum;

index--;

}

return twoNum;

}

/**

* 2进制转换16进制

* 概念说明:这里转换的是整数,从右向左四位一组分别乘以2的零次方,2的一次方,2的2次方,2的3次方,

* 然后相加把每组最终的得数一次从左向右拼到一起,若其中一组的和大于9,按照对应关系转换后再把每组的结果拼接到一起

* @param strNum2

*/

public static String twoTurnSixteen(String strNum2){

String resultNum = "";

int remainder = strNum2.length() % 4;

//补位,四位一组,最后一组位数不够用0补充

switch(remainder){

case 1:

strNum2 = "000"+strNum2;

break;

case 2:

strNum2 = "00"+strNum2;

break;

case 3:

strNum2 = "0"+strNum2;

break;

}

int index = strNum2.length()-1;

int tempNum1 = 0;

int tempNum2 = 0;

int tempNum3 = 0;

int tempNum4 = 0;

int tempNum5 = 0;

while(index>=1){

index -- ;

if(index % 4 == 0){

//每个数为一组

tempNum1 = Integer.parseInt(strNum2.substring(index, index+1));

tempNum2 = Integer.parseInt(strNum2.substring(index+1, index+2));

tempNum3 = Integer.parseInt(strNum2.substring(index+2, index+3));

tempNum4 = Integer.parseInt(strNum2.substring(index+3, index+4));

tempNum5 = tempNum4*1 + tempNum3*2+tempNum2*4+tempNum1*8;

resultNum = getOtherNum(tempNum5) +resultNum;

}

}

return resultNum;

}

/**

* 8进制转换16进制

* @param strNum2

*/

public static String eightTurnSixteen(String strNum2){

return twoTurnSixteen(eightTurnTwo(strNum2));

}

/**

* 16进制转换中的特殊处理,需要把大于9的数字转换成字母

* @param tempNum

* @return

*/

public static String getOtherNum(int tempNum){

String tempStr = "";

if(tempNum > 9){

switch(tempNum){

case 10:

tempStr = "A";

break ;

case 11:

tempStr = "B";

break;

case 12:

tempStr = "C";

break;

case 13:

tempStr = "D";

break;

case 14:

tempStr = "E";

break;

case 15:

tempStr = "F";

break;

}

}else{

tempStr = String.valueOf(tempNum);

}

return tempStr;

}

}

输出结果:

十进制数:1314521
十进制转换二进制:101000000111011011001
十进制转换八进制:5007331
十进制转换十六进制:140ED9
二进制转换八进制:5007331
八进制转换二进制:101111011011001
八进制转换十六进制:5ED9
二进制转换十六进制:140ED9

喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!

祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!

原文地址:https://www.cnblogs.com/heqingxiaohuo/p/12299202.html

时间: 2024-08-02 21:53:55

软帝学院:java十进制、八进制、十六进制数互相转换的相关文章

软帝学院教你Java Applet基础

软帝学院教你Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独立的Java应用程序和applet程序之间重要的不同: Java中applet类继承了 java.applet.Applet类 Applet类没有定义main(),所以一个 Applet程序不会调用main()方法, Applets被设计为嵌入在一个HTML页面. 当用户浏览包含Appl

软帝学院教你用java编写计算器(二)

软帝学院教你用java编写计算器(二) import java.awt.BorderLayout; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.

软帝学院教你:初识springboot

软帝学院教你:初识springbootSpring Boot简化了基于Spring的应用开发.你可以很容易地创建一个独立的,产品 级别的Spring应用. 我们为Spring平台及第三方库提供开箱即用的设置,这样你就 可以有条不紊地开始.多数Spring Boot应用只需要很少的Spring配置. 接下来我们开始第一个springboot应用,首先需要安装Java SDK 1.8 或更高版本 第一步通过maven创建应用SpringBoot-First,编辑pom文件,在文件中加入spring-

软帝学院:一万字的Java基础知识总结大全(实用)

Java基础总结大全(实用) 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jvm不是跨平台的. JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库. JDK(Java Development Kit):java的开发工具,包括jre+开发工具 2.环境变量path和classpath的作用是什么? (1)p

软帝学院:一万字Java基础总结大全

Java基础总结大全(实用)想要更多面试题和学习资料的可以私聊联系我,大家一起交流学习! 一.基础知识:1.JVM.JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.java语言是跨平台,jvm不是跨平台的.JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库.JDK(Java Development Kit):java的开发工具,包括jre+开发工具 2.环境变量p

软帝学院教你java命名规范法则

java命名规范法则大全 在我们在刚开始学习java的时候,给包.类.方法等命名的时候总是取名不规范,大多都是随便取的,对于一个专业的程序员来说.命名规范化也是必不可少的.命名规范的话能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯.增加代码的易读性,可读性. 一.包(全部小写) 包名全部小写,但它不同的项目类型:1.个体项目(indi ): 如:indi.发起者名.项目名.模块名.…… 2.个人项目(pers): 如:pers.个人名.项目名.模块名.…… 3.私有项目(pri

软帝学院:java多线程知识点分享

1.进程和线程: 进程:正在进行的程序.每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 线程:进程内部的一条执行路径或者一个控制单元. 两者的区别: 一个进程至少有一个线程 进程在执行过程中拥有独立的内存单元,而多个线程共享内存: 2.jvm多线程的启动是多线程吗? java的虚拟机jvm启动的是单线程,就有发生内存泄露的可能,而我们使用java程序没出现这样的问题, 也就是jvm启动至少有两个线程,一个执行java程序,一个执行垃圾回收.所以是多线程. 2.多线程的

【软帝学院】一套好的java基础教学视频需要哪些有哪些内容

如今网上有很多java基础视频,这对于新人学java是很有帮助的,但是视频太多也对小白造成了困扰,不知道自己看的这套视频好吗,内容是否合格,适不适合新手看,我接下来便说一下一套合格的java基础视频应该有哪些内容. 一:Java编程基础 Java基础语法 职业导向训练概述.数据类型和运算符.时间管理.流程控制.数组 掌握Java语言的基础 Java面向对象 类和对象.封装.继承.多态.阶段练习-汽车租赁.抽象类和接口.阶段练习-图书销售管理.异常.职场写作力 掌握Java面向对象的思想及其特征

软帝学院告诉你什么是java?学Java能做什么?Java有什么特性?

什么是java?学Java能做什么?Java有什么特性?Java 技术既是一种高级的面向对象的编程语言,也是一个平台.Java 技术基于 Java 虚拟机(Java virtual machine,JVM)的概念 -- 这是语言与底层软件和硬件之间的一种转换器.Java 语言的所有实现都必须实现 JVM,从而使 Java 程序可以在有 JVM 的任何系统上运行.Java 编程语言(Java programming language)与众不同之处在于:Java 程序既是编译型的(compiled)