Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kdb 整数到给定基的转换_Kdb_Q Lang - Fatal编程技术网

Kdb 整数到给定基的转换

Kdb 整数到给定基的转换,kdb,q-lang,Kdb,Q Lang,我想将任何正整数从2转换为9。 基本2的输出应为: 0 -> enlist 0 1 -> enlist 1 31 -> 1 1 1 1 1 62 -> 1 1 1 1 1 0 63 -> 1 1 1 1 1 1 64 -> 1 0 0 0 0 0 0 我为此开发了下一个函数 convertToBase: reverse {[x;base;result] result,: `int$x mod base; x-: last result

我想将任何正整数从
2
转换为
9
。 基本
2
的输出应为:

0  -> enlist 0
1  -> enlist 1
31 -> 1 1 1 1 1
62 -> 1 1 1 1 1 0
63 -> 1 1 1 1 1 1
64 -> 1 0 0 0 0 0 0
我为此开发了下一个函数

convertToBase: reverse {[x;base;result] 
    result,: `int$x mod base; 
    x-: last result; 
    x%: base; 
    $[x=0;result;.z.s[x;base;result]]
};

//invocation
convertToBase[62;2;()]

问题是,是否有任何内置的
Q
函数可以有效地执行此操作?如果不是,如何优化上述解决方案?

如果左侧参数是数字,则vs函数会执行此操作

例如:

2 vs 100
将返回:

1 1 0 0 1 0 0

但是,如果右参数为0,则返回一个空列表,但如果返回值为空,则可以使用输出0的条件对其进行包装。

谢谢。你使用哪个版本的Q。我尝试了3.2和3.3,得到了
'nyi
。是3.4吗?我目前正在使用kdb+3.4 2016.06.14,是的。直到最近我才有机会使用这个习惯用法,所以我从来没有在旧版本上测试过。对于kdb+版本,从3.x升级到3.4是安全的,不需要在旧版本上测试