网站大量收购闲置独家精品文档,联系QQ:2885784924

Java中十进制转换IntegertoHexString.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多
Java中十进制转换IntegertoHexString

为了显示一个byte型的单字节十六进制(两位十六进制表示)的编码,请使用: Integer.toHexString((byteVar 0x000000FF) | 0xFFFFFF00).substring(6) ?byteVar 0x000000FF的作用是,如果byteVar 是负数,则会清除前面24个零,正的byte整型不受影响。(...) | 0xFFFFFF00的作用是,如果byteVar 是正数,则置前24位为一,这样toHexString输出一个小于等于15的byte整型的十六进制时,倒数第二位为零且不会被丢弃,这样可以通过substring方法进行截取最后两位即可。 ? Java代码?? import?junit.framework.TestCase;?? ?? public?class?Hex?extends?TestCase?{?? ?? ????public?void?testPositiveIntToHex()?{?? ????????//如果正数小于15时,只输入一位,而不是按我们想像的两位标准十六进制输出显示的,后面解决这个问题?? ????????System.out.println(Integer.toHexString(2));//2?? ????????System.out.println(Integer.toHexString(15));//f?? ????????System.out.println(Integer.toHexString(16));//10?? ????????System.out.println(Integer.valueOf(F,?16));//16?? ????}?? ?? ????/*? ?????*?Integer.valueOf()实质上调用的是Integer.parseInt()来完成的,所以? ?????*?Integer.parseInt()与Integer.valueOf()功能是一样的,只是返回值不? ?????*?一样而已? ?????*/?? ????public?void?testNegativeIntToHex()?{?? ????????//负整数时,前面输入了多余的?FF?,没有去掉前面多余的?FF,按并双字节形式输出?? ????????System.out.println(Integer.toHexString(-2).toUpperCase());//FFFFFFFE?? ?? ????????//实质上0xFF会像转换成0x000000FF后再进行位运算?? ????????System.out.println(Integer.toHexString(-2??0xFF).toUpperCase());//FE?? ????????System.out.println(Integer.toHexString(-2??0x000000FF).toUpperCase());//FE?? ?? ????????//注,FE输出时不会为-2,因为此时不会把FE看成负数,valueOf会把所有数字串看成正的?? ????????System.out.println(Integer.valueOf(FE,?16));//254?? ????????//如果要输出-2,只能按以下形式输出?? ????????System.out.println(Integer.valueOf(-2,?16));//-2?? ?? ????????//所以要把?FE?看成负的话,只能在前面加上负号,但是这里输出还不是-2,?? ????????//而是先计算Integer.valueOf(FE,?16),再在结果前加上负?? ????????System.out.println(Integer.valueOf(-FE,?16));//-254?? ?? ????????/*?所以如果要输入某个负数,我们只能先求出该数的绝对值的原码十六进制,再在前面加上负号,? ?????????*?例如求表示-128,则先对绝对值128求十六进制?80,再在前面加上负号?-80? ?????????*/?? ????????System.out.println(Integer.valueOf(-80,?16));//-128?? ?? ????????/*?为什么说valueOf把所有数字串看成正的呢?请看下面三行代码,因为最大正数为2147483647,? ?????????*?如果再??在7fffffff基础上加上一个一,运行肯定会出错误(这与直接输出0一样),? ?????????*?那么就可以证明? ?????????*/?? ????????Sy

文档评论(0)

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

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

1亿VIP精品文档

相关文档