I have a hexa value(Fa) in a string.
To add up some hexa values, first you need to convert each one of them into byte.
This program is used to convert a hexa value stored in string to byte format
/**
*
* Program to convert hex value stored in string to byte format
*
*/
public class HexConversion
{
public static void main(String[] args)
{
byte v = 0;
String s = "Fa";
byte[] b = s.trim().getBytes();
System.out.println(b[0]);
byte A, B;
A = getHexaValue(b[0]);
B = getHexaValue(b[1]);
System.out.printf("%X", A);
System.out.println();
System.out.printf("%X", B);
System.out.println();
/*
* Binary of F = 1111 (4 bits)
* Binary of a = 1010 (4 bits)
* The binary equivalent of Fa is 11111010
* b[0] = 70 = F = 00001111
* b[1] = 65 = a = 00001010
* To get both bytes in a single byte, left shift first byte to 4 positions
* OR it with v
* Then OR the second byte with v
* You will get the result as FA in a single byte
*/
A = (byte) (A << 4); //left shifts value in A to 4 positions
System.out.printf("%X", A);
System.out.println();
v = (byte) (v | A);
System.out.printf("%X", v);
System.out.println();
v = (byte) (v | B);
System.out.printf("%X", v);
System.out.println();
}
//Returns the hexa value of the corresponding byte.
//Hexa value is 4 in size
private static byte getHexaValue(byte b)
{
byte val = 0;
switch (b)
{
case 65://A
case 97://a
val = 0x0A;
break;
case 66://B
case 98://b
val = 0x0B;
break;
case 67://C
case 99://c
val = 0x0C;
break;
case 68://D
case 100://d
val = 0x0D;
break;
case 69://E
case 101://e
val = 0x0E;
break;
case 70://F
case 102://f
val = 0x0F;
break;
case 49://1
val = 0x01;
break;
case 50://2
val = 0x02;
break;
case 51://3
val = 0x03;
break;
case 52://4
val = 0x04;
break;
case 53://5
val = 0x05;
break;
case 54://6
val = 0x06;
break;
case 55://7
val = 0x07;
break;
case 56://8
val = 0x08;
break;
case 57://9
val = 0x09;
break;
}
return val;
}
}
To add up some hexa values, first you need to convert each one of them into byte.
This program is used to convert a hexa value stored in string to byte format
/**
*
* Program to convert hex value stored in string to byte format
*
*/
public class HexConversion
{
public static void main(String[] args)
{
byte v = 0;
String s = "Fa";
byte[] b = s.trim().getBytes();
System.out.println(b[0]);
byte A, B;
A = getHexaValue(b[0]);
B = getHexaValue(b[1]);
System.out.printf("%X", A);
System.out.println();
System.out.printf("%X", B);
System.out.println();
/*
* Binary of F = 1111 (4 bits)
* Binary of a = 1010 (4 bits)
* The binary equivalent of Fa is 11111010
* b[0] = 70 = F = 00001111
* b[1] = 65 = a = 00001010
* To get both bytes in a single byte, left shift first byte to 4 positions
* OR it with v
* Then OR the second byte with v
* You will get the result as FA in a single byte
*/
A = (byte) (A << 4); //left shifts value in A to 4 positions
System.out.printf("%X", A);
System.out.println();
v = (byte) (v | A);
System.out.printf("%X", v);
System.out.println();
v = (byte) (v | B);
System.out.printf("%X", v);
System.out.println();
}
//Returns the hexa value of the corresponding byte.
//Hexa value is 4 in size
private static byte getHexaValue(byte b)
{
byte val = 0;
switch (b)
{
case 65://A
case 97://a
val = 0x0A;
break;
case 66://B
case 98://b
val = 0x0B;
break;
case 67://C
case 99://c
val = 0x0C;
break;
case 68://D
case 100://d
val = 0x0D;
break;
case 69://E
case 101://e
val = 0x0E;
break;
case 70://F
case 102://f
val = 0x0F;
break;
case 49://1
val = 0x01;
break;
case 50://2
val = 0x02;
break;
case 51://3
val = 0x03;
break;
case 52://4
val = 0x04;
break;
case 53://5
val = 0x05;
break;
case 54://6
val = 0x06;
break;
case 55://7
val = 0x07;
break;
case 56://8
val = 0x08;
break;
case 57://9
val = 0x09;
break;
}
return val;
}
}
No comments:
Post a Comment
Thanks for visiting my Blog....Ur comments n suggestions are most valuable for me...Thanks