I have a very simple question on how to extract certain bits from a string hex column(named Flags) to numbers. My column values will be like "0x1BA1". I would like to extract the bits 8 and 9 values and convert them to a value of 3 into my new column. Since I don't know the binary operation in jmp, I tried to extract B into 11 first by doing the following
Char To Hex(Munger(:Flags, 4, 1)).
It gives me a character column of 42. I tried to put a "integer" in to the formula
Char To Hex((Munger(:Flags, 4, 1)), "integer")
But it wouldn't recognize it. I'm using jmp11.2.1.
After extracting B, I'll use module(module(value,8),4) to get the lower 2 bits.
If there's an easy way to extract binary bits, that will be even better.
There is a function Hex to Number() that converts hexadecimal numbers (as strings) to decimal numbers.
hex = "0x1BA1";
// Hex to decimal
value = Hex To Number(Substr(hex, 4, 1));
// decimal to binary
bin = "";
bin = Char(Modulo(Num(value), 2)) || bin;
value = Floor(value / 2);
// Reverse last step for confirmation (or just for fun)
value2 = Sum(2 ^ (Loc(Reverse(Words(bin, "")), "1") - 1));
I have trouble with these "Hex to .." command. They don't work on my case. Here's the screen copy. I don't know what could be wrong.