十进制转换成二进制、八进制、十六进制的通用方法.pdfVIP

十进制转换成二进制、八进制、十六进制的通用方法.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
⼗进制转换成⼆进制、⼋进制、⼗六进制的通⽤⽅法 /** * 将⼗进制转换成⼆进制、⼋进制、⼗六进制 * 说明: * 1)、在JAVA 语⾔⼀个整数⽤4个⼋位表⽰,即32个⼆进制位 * 2)、⼀个⼆进制位⽤0和1表⽰,最⼤值是1 * 3)、⼀个⼋进制位表 3个⼆进制位,最⼤值是7 * 4)、⼀个⼗六进制位表 4个⼆进制位,最⼤值是15 * */ public class DecimalConvert { public static void main(String[] args) { int num = 60; System.out.println(num + 转换成⼆进制= + toBinaryString(num)); System.out.println(num + 转换成⼋进制= + toOctalString(num)); System.out.println(num + 转换成⼗六进制= + toHexString(num)); } /** * ⼗进制转成⼆进制 * @param num 要转换成⼆进制的整数 * @return 转成⼆进制后的字符串 */ public static String toBinaryString(int num) { return trans(num, 1, 1); } /** * ⼗进制转成⼋进制 * @param num 要转换成⼋进制的整数 * @return 转成⼋进制后的字符串 */ public static String toOctalString(int num) { return trans(num, 7, 3); } /** * ⼗进制转成⼗六进制 * @param num 要转换成⼗六进制的整数 * @return 转成⼗六进制后的字符串 */ public static String toHexString(int num) { return trans(num, 15, 4); } /** * 进制公共计算⽅法,提取进制转换相同的代码 * @param num 要转换的整数 * @param base 要转换的进制基数,如果是⼆进制:base=1; 如果是8进制:base=7; 如果是16进制:base=15 * @param offse 右移位数,由转换的进制类型决定。⼆进制偏移1位,8进制偏移3位,16进制偏移4位 * @return 转成进制后的字符串 */ private static String trans(int num, int base, int offset) { if (num == 0) return ; StringBuffer result = new StringBuffer(); // 存储⼆进制、⼋进制、⼗六进制的字符表 char[] chs = new char[] { 0,1,2,3, 4,5,6,7, 8,9,A,B, C,D,E,F }; char[] arr = new char[32]; //JAVA 中in ⽤4个⼆进制⼋位表⽰,即32个⼆进制位,所以存储的值最⼤不会超过32位 int pos = arr.length; // 存储进制值的指针 // 开始计算,直到有效位为0才停⽌计算 while(num != 0) { // 与()上转换进制有效位的最⼤值,如果在16进制中,⼀个⼗六进制位表 4个⼆进制位,4个⼆进制位的最⼤值是15,所以这⾥的base就是15 int temp = num base; // 从最⼤下标位开始存储,⽅便取出拼接。temp的值在0-15之间,所以直接将与后的值从字符表中取出来得到相应的进制值 arr[--pos] = chs[temp]; // ⽆符号右移,如果是16进制,则右移4位,因为⼀个⼗六进制位表 4个⼆进制位,所以这⾥的offse 就是4 num = num offset; } // 将计算后的值拼接成相应的进制表⽰⽅式,由于是反着存储的,所以要从最后保存的指针位置开始取才能保证表现的进制数是正确的 for (int i = pos; i arr.length; i++) { result.appen

您可能关注的文档

文档评论(0)

1636091513dfe9a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档