我在写串口,写的数据必须是十六进制。而且串口提供的 write 方法是规定是 int 型的( write(int a)),
我现在遇到的问题是:我要将整数 a 与 b 异或之后写进串口。 
我尝试过的方法:①Integer.toHexString(a^b); 这个返回的是String类型,明显不可以。
②Integer.parseInt(Integer.parseIn(a^b), 16);这个方法返回的是十进制 Int 型,不是十六进制现在求教怎样将一个十六进制的结果以Int的形式返回,以十六进制的形式表示。
即 public int fun(int a,int b){teturn a^b;},如fun(0x5,0xA),返回十六进制的 A 而不是十进制的 10 ;

解决方案 »

  1.   

    没有10进制的int或16进制的int
    int就是int,代表某个数值
    只有将它转化成字符串或者输出显示时,才有10进制或16进制的表现形式
      

  2.   

    write(0xA)和write(10)是等价的吧,16进制的int它也是int啊
      

  3.   


    正解,lz直接写入int不行吗?好好看看api
      

  4.   

    你可以用DataOutputStream并且看看他的api
    void writeInt(int v) 
    将一个 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。 
      

  5.   

    int不分进制的,都是按照4个字节进行运算的,若要显示ToHexString即可
      

  6.   

    goldenfish1919
    (若鱼)
    谢谢,真的是这样,咕~~(╯﹏╰)b