[ad_1]
Some time in the past I wrote a blogpost on the best way to use Unicode characters in Energy BI. In that blogpost I used a recursive Energy Question perform to transform Hex values to Dec values. A number of weeks again one in every of my website guests kindly shared his non-recursive model of Energy Question perform which superbly does the job. An enormous 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 perform. I’ve touched his code a bit although, but it surely was extra of a beauty change, so all credit of this blogpost goes to Rocco. The advantages of his code will not be restricted to being non-recursive. The code beneath 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 good thing about the beneath code is that it’s not case delicate (observe to the digits
step on the code beneath).
Right here is the fnHex2Dec
perform for Energy Question:
(enter as textual content, non-obligatory 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 = Listing.Rely(digits)-1,
exp = if base=null then 16 else base,
Consequence = Listing.Sum(
Listing.Rework(
{0..dim}
, every File.Area(values, digits{_}) * Quantity.Energy(exp, dim - _)
)
)
in
Consequence
As you see within the code above, the base
parameter is non-obligatory, so if not supplied base 16 can be the default.
That is how we will invoke the above perform:
fnHex2Dec("AbCdEf", null)
Right here is the outcomes of invoking the fnHex2Dec
perform 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 consider the perform above? Depart your ideas within the feedback part beneath.
Associated
[ad_2]