十六进制转十进制你好 ,
收到客户要求导入包含多个文件的请求十六进制列。例如0xeadf、0xffdb;
在JMP13中,当我们简单地将数据粘贴/导入到JMP中时,JMP会自动将这些十六进制列更改为连续数据,例如65499、60127...
而当他们升级到 JMP14* 时,十六进制列仍保留为“0xeadf”等字符,即使删除前缀“0x”,它仍然保留。
公式化的十六进制转数字(:列名称)只适用于新创建的连续列,但不适用于现有的十六进制列
--> 这不会解决许多十六进制列的客户问题。处理(JMP15 与 JMP14 的行为相同)
附2张图片

问题:
1): JMP13 与 JMP14 中用户可以配置的不同设置是什么?
2):如果问题1不可能,有人有什么想法来处理这种情况吗?
感谢您的任何想法和想法,祝您星期五快乐:)
别针
回复:十六进制转十进制@andreacoombs1 , 做十六进制转数字()给你你正在寻找的东西?

回复:十六进制转十进制@brady_brady我今天与 IBM 交谈,这个转换工具正是他们所需要的。他们正在 10 基数和 16 基数之间进行转换。对此有任何更新 - 是否都已转换为加载项?该功能在软件中本身可用吗?
我能够使用 Hex to Number() 和 Hex() 来进行此转换。 (见附件)
回复:十六进制转十进制嗨,平和唐,
我知道我迟到了这个讨论,但想补充一点,我一直希望 JMP 中有一个基本转换函数。 下面是我不久前编写的一个工具,用于在任意 2 个整数基数之间(基数 2 和基数 36(含)之间进行转换)。
函数调用规范为:
b1Tob2 (n(字符串), b1(数字), b2(数字)) -> 结果(字符串)
它假定所有值均已正确指定(即,基数 5 中不能包含数字 376,因为基数 5 中不使用大于 5 的数字)。 正如 Pin 提到的,在应用该函数之前可能需要进行预处理(例如删除“0x”)。
下面显示的是在公式列中使用该工具的代码。 必须更改的只是最后一行,以匹配表的列名称,并且公式仍应适用于 Don 描述的标准化属性过程。 这可以很容易地变成一个插件并制作一个有趣的博客。 也许我会在某个时候这样做。
我还提供了正在使用的公式的屏幕截图,并附上了示例表。
干杯,
布雷迪
names default to here(1);
decToB = Function( {n, b},
{a, s},
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
n = Num( n );
a = "";
While( n >= 1,
a = Substr( s, Mod( n, b ) + 1, 1 ) || a;
n = Floor( n / b );
);
a;
);
bToDec = Function( {n, b},
{s},
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
c = 0;
n = Char( n );
For( i = 1, i <= Length( n ), i++,
a = (c + Contains( s, Substr( n, i, 1 ) )) - 1;
c = a * b;
);
a;
);
b1Tob2 = Function( {n, b1, b2},
{default local},
n = Char( n );
decTob( btoDec( n, b1 ), b2 );
);
b1Tob2( :Number, :Original Base, :New Base );

回复:十六进制转十进制非常感谢唐。@唐麦考马克
只需稍加修改,您的解决方案就可以很好地工作:首先替换前缀“0x” (JMP14, JMP15 的工作方式相同)
我认为您正在使用解决方案来创建各自的连续列。 --> 以便“十六进制到数字”公式可以在以后的公式标准化中起作用
(哈哈,希望我们的开发人员将来可以使“十六进制到数字”公式直接适用于这些十六进制列:) )

所以现在,我们将拥有原始的六角柱。 + 它们各自的连续列,名称为 Length[FG0]
(根据用户偏好更改标题名称:) )
再次感谢。 祝您旅途平安,期待再见~
回复:十六进制转十进制别针,
我注意到的一件事是,JMP 13 中的复制和粘贴不一定会给出正确的结果。 附加的 Excel 工作簿有 3 组相同值的列,最后两组是十六进制表示形式。 粘贴最后一组列不会得到与第一组相同的结果,但应该如此。 我不确定开发人员是否意识到了这一点并改变了 13 到 14 之间的行为。 无论如何,出于这个原因,我不会在 13 及更早版本中使用复制和粘贴。 一个相对简单的解决方案是:
- 选择字符十六进制值列,右键单击并选择“新建列公式”>“字符”>“长度”。
- 选择新创建的列并转到列 > 标准化属性。
- 选择标准化属性 > 公式。 编辑公式并将长度替换为十六进制到数字
- 选中替换列参考框(这很重要)
- 单击“应用”
这应该将列转换为其正确的值。 希望这可以帮助。
大学教师
回复:十六进制转十进制@杰夫·珀金森确实如此。 我花了一段时间才理解特定示例需要什么基数(它们在 16 和 10 之间相互转换)以及 Hex to Number () 和 Hex () 中的默认基数是什么。客户认为在 Excel 中要容易得多。如果这是格式的一部分或者可以在列信息中发现,那就太好了...
现在前往内部愿望清单。:)