HomeBusiness IntelligenceFast Ideas: Changing Hexadecimal, Oct and Binary to Decimal in a Single...

# Fast Ideas: Changing Hexadecimal, Oct and Binary to Decimal in a Single Energy Question Operate

Some time in the past I wrote a blogpost on the way to use Unicode characters in Energy BI. In that blogpost I used a recursive Energy Question operate to transform Hex values to Dec values. A number of weeks again considered one of my web site guests kindly shared his non-recursive model of Energy Question operate which fantastically does the job. A giant shout out to Rocco Lupoi for sharing his code. So, I made a decision to share it with everybody so extra individuals can leverage his good Energy Question operate. I’ve touched his code a bit although, however it was extra of a beauty change, so all credit of this blogpost goes to Rocco. The advantages of his code is just not restricted to being non-recursive. The code under converts numbers of any base when the bottom is smaller than 16 like Binary and Oct, so it’s not restricted to Hex values solely. The opposite advantage of the under code is that it’s not case delicate (be aware to the `digits `step on the code under).

Right here is the `fnHex2Dec `operate for Energy Question:

``````(enter as textual content, elective base as quantity) as quantity =>
let
values = [
0=0,
1=1,
2=2,
3=3,
4=4,
5=5,
6=6,
7=7,
8=8,
9=9,
A=10,
B=11,
C=12,
D=13,
E=14,
F=15
],
digits = Textual content.ToList(Textual content.Higher(enter)),
dim = Record.Rely(digits)-1,
exp = if base=null then 16 else base,
Outcome = Record.Sum(
Record.Rework(
{0..dim}
, every Document.Area(values, digits{_}) * Quantity.Energy(exp, dim - _)
)
)
in
Outcome``````

As you see within the code above, the `base `parameter is elective, so if not offered base 16 can be the default.

That is how we will invoke the above operate:

``fnHex2Dec("AbCdEf", null)``

Right here is the outcomes of invoking the `fnHex2Dec` operate to transform binary to decimal:

``fnHex2Dec("101010111100110111101111", 2)``

And this one the way it works to transform Oct to decimal:

``fnHex2Dec("52746757", 8)``

What do you concentrate on the operate above? Go away your ideas within the feedback part under.

RELATED ARTICLES