通过我的javascript库,我最终得到一个表示数字的字符串.现在我想在不进行字符串连接的情况下对该数字进行预处理.解决方案很简单( 如果您的数字始终为整数,如何使用javascript(jquery)将整数值添加到返回字符串的值?如何添加而不是连接?但是我的字符串可能是浮点数或整数,并且在添加时,我不知道它将是什么.有没有办法确保添加发生,无论它是浮点数还是整数?
我想总结一个数组元素.该数组包含正数和负数.
array db 07, 00, -3, 10, -7, 14, 9, -5, -100
lea ax, data
mov ds, ax
mov es, ax
lea si, array
mov cx, [si]
mov si, 0002h
xor ax, ax
xor dx, dx
Addition:
mov bl, [si]
cmp bl, 00h
jl NEGATIVE
xor bh, bh ;
jmp NEXTT
NEGATIVE:
mov bh, 0ffh
NEXTT:
add ax, bx
adc dx, 0
add si, 1
loop Addition
Run Code Online (Sandbox Code Playgroud)
sum(DX:AX)使用此代码= 0003 FFAE H这是错误的.我认为正确的答案是FFFFFFAE H.
1-如何解决此问题?
2-如何知道寄存器中的数字(例如AX)是正数还是负数?
我用的是emu8086
想知道自我添加会有多快,我在Java中写了一个快速的小循环来看:
int count = 1;
while(true){
System.out.println(count);
count += count;
}
Run Code Online (Sandbox Code Playgroud)
输出是意料之外的:
0
0
0
0
0
...
Run Code Online (Sandbox Code Playgroud)
为什么是这样?count被初始化为1,因此内部添加应该是count + count或1 + 1.为什么结果为0?
自然数可以使用二进制表示形式在对数空间中表示(此处为little-endian):
-- The type of binary numbers; little-endian; O = Zero, I = One
data Bin = O Bin | I Bin | End
Run Code Online (Sandbox Code Playgroud)
然后可以通过调用函数()次数来实现a和添加.这种实现的问题在于它本质上是顺序的.为了添加2个号码,呼叫按顺序链接.(例如使用进位)的其他实现遭受相同的问题.很容易看出,添加不能与该表示并行实现.是否使用代数数据类型表示自然数,它采用对数空间,并且可以并行添加?bsuccessorO(log(N))absucadd
插图代码:
-- The usual fold
fold :: Bin -> (t -> t) -> (t -> t) -> t -> t
fold (O bin) zero one end = zero (fold bin zero one end)
fold (I bin) zero one end = one (fold bin …Run Code Online (Sandbox Code Playgroud) algorithm parallel-processing haskell addition data-structures
有没有办法构造一个vector2 vectors 的连接(除了创建一个辅助函数?)
例如:
const vector<int> first = {13};
const vector<int> second = {42};
const vector<int> concatenation = first + second;
Run Code Online (Sandbox Code Playgroud)
我知道vector 没有添加运算符string,但这就是我想要的行为.这样concatenation包含:13和42.
我知道我可以concatenation像这样初始化,但它阻止我做concatenation const:
vector<int> concatenation = first;
first.insert(concatenation.end(), second.cbegin(), second.cend());
Run Code Online (Sandbox Code Playgroud) 我们(人)花费更多的时间来乘法,加法,除法和减去两个大数而不是两个小数.
计算机是否需要花费更多时间来5 * 2表示51234 * 987654或者是否在相同的时间内完成操作?
两个大于处理器字长的数字(例如两个128位数)怎么办?
我看到了文章https://en.wikipedia.org/wiki/Multiplication_algorithm
我有一个更复杂的JQ表达式,用于处理对象数组。
输入看起来像这样:
[
{ "key": "1", "value": "value 1"},
{ "key": "2", "value": "value 2"},
{ "key": "1", "value": "value 3"},
]
Run Code Online (Sandbox Code Playgroud)
我想要得到的是:
{
"1": { "values": ["value 1", "value 3"] },
"2": { "values": ["value 2"] }
}
Run Code Online (Sandbox Code Playgroud)
或者,对于我的用例:
{
"1": [ "value 1", "value 3" ],
"2": [ "value 2" ]
}
Run Code Online (Sandbox Code Playgroud)
也可以。
我已经尝试过使用它,… | { (.key): [.value] }但是结果是(以后没有出现任何意外),以后出现的键只会覆盖已经存在的键。我要完成的工作类似于“创建新的键/值对或将.value添加到已经存在的'values'数组中”。
我是Delphi的新手.对于我公司要求的项目,我需要将现有C++类中的一些代码翻译成Delphi.其中一些类是模板,例如:
template <class T>
struct APoint
{
T m_X;
T m_Y;
virtual void Add(T value);
};
template <class T>
void APoint<T>::Add(T value)
{
m_X += value;
m_Y += value;
}
Run Code Online (Sandbox Code Playgroud)
我使用它,例如使用此代码
APoint<float> pt;
pt.m_X = 2.0f;
pt.m_Y = 4.0f;
pt.Add(5.0f);
Run Code Online (Sandbox Code Playgroud)
这很有效.
现在我需要为Delphi编写等效的代码.我试着写一个Delphi Generic类,基于上面的C++代码:
APoint<T> = record
m_X: T;
m_Y: T;
procedure Add(value: T);
end;
procedure APoint<T>.Add(value: T);
begin
m_X := m_X + value;
m_Y := m_Y + value;
end;
Run Code Online (Sandbox Code Playgroud)
但是这段代码无法编译.我收到此错误:
E2015运算符不适用于此操作数类型
AFAIK这个代码应该可行,我不明白它有什么问题.那么任何人都可以向我解释:
为什么这样的代码不能在Delphi中编译?
Delphi中创建一个提供Add()函数的模板类的正确(和最简单)方法是什么,尽可能接近上面的C++代码和用法?
2016年10月17日编辑
感谢所有的答复.因此,如果我理解正确,就无法创建类似c ++的样式模板,因为Delphi强加了c ++中不存在的几个约束. …
是否有内置函数来添加新列,该新列是原始列的否定?
Spark SQL有这个功能negative()。Pyspark好像没有继承这个功能。
df_new = df.withColumn(negative("orginal"))
Run Code Online (Sandbox Code Playgroud)