怎样将Java中某种自带算法的程序调出来啊比如说integer.tohexstring为了显示一个byte型的单字节十六进制(两位十六进制表示)的编码,请使用:
Integer.toHexString((byteVar0x000000FF) | 0xFFFFFF00).substring(6)
byteVar0x000000FF的作用是,如果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(-20xFF).toUpperCase());//FE
System.out.println(Integer.toHexString(-20x000000FF).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基础上加上一个一,运行肯定会出错误(这与直接输出0x80000000不一样) ,
* 那么就可以证明
*/
System.out.println(Integer.valueOf("7fffffff", 16));//2147483647
//此句运行时会报错 , 因为最大正数为7fffffff,但如 -80000000 却又可以运行,因为没超出整数范围
//System.out.println(Integer.valueOf("80000000", 16));//不能运行 , 已注掉
System.out.println(Integer.valueOf("-80000000", 16));//-2147483648
/* 注,输出时不是负数,而是正,因为0xFE只有8位,而整数是32位,所以以int形式出现时前
* 面会自动补24个零,第一位是零,所以最后是正数
*/
System.out.println(0xFE);//254
System.out.println(-0xFE);//-254
//但0x80000000已满 , 无需补,第一位为一,所以最后为负数
System.out.println(0x80000000);//-2147483648
}
public void testNegativeIntToBin() {
System.out.println(Integer.toBinaryString(-2));//11111111111111111111111111111110
//实质上0xFF会像转换成0x000000FF后再进行位运算
System.out.println(Integer.toBinaryString(-20xFF));//11111110
推荐阅读
- 直播活动教程,直播活动方式
- 有网络怎么接路由器的,有网络怎么连接路由器
- kangle虚拟主机目录,虚拟主机根目录在哪
- 鸿蒙禁止下载APP,鸿蒙禁止安装外部应用
- php网页表格数据统计 php 做出excel页面
- 天津如何获得拓客引流渠道,天津拓客文化公司评价
- php可以展示xml数据 php xml扩展
- 华为mate20x5g怎么不更新鸿蒙系统的简单介绍
- jquery模糊查询去空格,javascript模糊查询