如何用java将一个16进制的数转为单字节的10进制数

芒果先生 2012-08-03 04:52:42
现在有一个16进制的数 String s = “FFDD”,要用JAVA对其进行转化,转为10进制的数,如果用正常的Integer类的方法Integer.valueOf(s,16)或者Integer.parseInt(s,16)进行转换,得出来的数是多字节的整数--65501,现想将其转换为单字节的整数----35 该怎么转呢
...全文
388 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
芒果先生 2012-08-08
  • 打赏
  • 举报
回复
原来这两个都可以将整形转换为单字节的,上次结帖太快,没能给第二位朋友加分,最后,我在我的程序里还是使用了第二位朋友的方法,因为我要处理的那些整数,有些处理起来超过了byte的最大数值,结果程序直接返回个负值,查了一天,最后才发觉原来是这个错,太郁闷了
huage 2012-08-03
  • 打赏
  • 举报
回复

String s = "FFDD";
int is = Integer.valueOf(s, 16) ;
System.out.println((short)is);

芒果先生 2012-08-03
  • 打赏
  • 举报
回复
牛人啊,谢谢啦
老紫竹 2012-08-03
  • 打赏
  • 举报
回复
		String s = "FFDD";
int num = Integer.parseInt(s, 16);
System.out.println((byte) num);
Java的 的8⼤基本据类型 ⼤基本据类型 Java8⼤基本据类型 ⼤基本据类型   byte(字节型)、short(短整型)、int (整型) 、long(长整型)   float(单精度浮点型)、double(双精度浮点型)、boolean(布尔型)、char(字符型) 整型   byte据类型是8位, 1个字节,默认值:0,取值范围:(-128 - 127);   short据类型是16位,两个字节,默认值:0,取值范围:(-2^15 - 2^15 -1);   int 据类型是32位,4个字节,默认值:0,取值范围:(-2^31 - 2^31 -1)   long据类型是64位,⼋个字节,默认值:0L,整型常量若要声明为long类型,需要在字后加上l或L,long a = 10000L; 浮点型   float据类型是单精度、32位浮点;默认值:0.0f,若要定义float类型的变量需要在⼩后⾯追加f或者F,float a= 2.3f;   double据类型是双精度、64位、符合IEEE 754标准的浮点;默认值:0.0d,double d = 2.3;   描述整默认⽤int,描述⼩默认⽤double。long⼀般⽤于描述⽇期、时间、内存、⽂件⼤⼩,IO处理⼀般使⽤byte 字符型   char⼀般⽤于描述中⽂(基本忽略),取值范围:(\u0000 - \uffff) —>(0 - 65535);,字符型⽤' '表⽰;char ch = 'A',   char和int可以相互转换,char转int直接赋值,int 转char强转。 布尔型   boolean表⽰⼀位的信息,只有两个取值:true和false,默认值:false 每个据类型对应的包装类中都有对应的SIZE属性返回位,MIN_VALUE和MAX_VALUE返回该据类型最⼩值和最⼤值。 public class PrimitiveTypeTest{ public static void main(String[] args){ //byte System.out.println("基本类型:byte ⼆进制位:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最⼩值:Byte.MIN_VALUE = " + Byte.MIN_VALUE); System.out.println("最⼤值: Byte.MAX_VALUE = " + Byte.MAX_VALUE); // char System.out.println("基本类型:char ⼆进制位:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以值形式⽽不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最⼩值:Character.MIN_VALUE=" +(int)Character.MIN_VALUE); // 以值形式⽽不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最⼤值:Character.MAX_VALUE="+(int) Character.MAX_VALUE); } } 运⾏结果: 基本类型:byte ⼆进制位:8 包装类:java.lang.Byte 最⼩值:Byte.MIN_VALUE = -128 最⼤值: Byte.MAX_VALUE = 127 基本类型:char ⼆进制位:16 包装类:java.lang.Character 最⼩值:Character.MIN_VALUE=0 最⼤值:Character.MAX_VALUE=65535 Float和Double的最⼩值和最⼤值都是以科学计法的形式输出的,结尾的"E + 字"表⽰E之前的字要乘以10的多少次⽅。 eg:1.4E-45 —> 1.4 10^(-45) 据类型转换必须满⾜如下规则: 据类型转换必须满⾜如下规则:   1.不能对boolean类型进⾏类型转换   2.不能把对象类型转换成不相关类的对象   3.⼩的据类型与⼤的据类型做值运算时,⼩的据类型会⾃动提升为⼤的据类型。   4.⼤的据类型要转为⼩的据类型必须强转,强转可能会丢失据。   5.浮点到整的转换是通过舍弃⼩得到,⽽不是四舍五⼊   低级--------> ⾼级   byte,short,char->int->long->float->double 举例说明: p

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧