标签: arithmetic-expressions

如何在bash中使用浮点除法?

我试图在Bash脚本中划分两个图像宽度,但bash给出0了结果:

RESULT=$(($IMG_WIDTH/$IMG2_WIDTH))
Run Code Online (Sandbox Code Playgroud)

我研究了Bash指南,我知道我应该使用它bc,在他们使用的互联网的所有例子中bc.在echo我试图把同样的东西放在我的,SCALE但它没有奏效.

以下是我在教程中找到的示例:

echo "scale=2; ${userinput}" | bc 
Run Code Online (Sandbox Code Playgroud)

我怎么能让Bash给我一个漂浮0.5

floating-point bash arithmetic-expressions

211
推荐指数
13
解决办法
28万
查看次数

如何在bash中使用mod运算符?

我正在尝试这样一条线:

for i in {1..600}; do wget http://example.com/search/link $i % 5; done;
Run Code Online (Sandbox Code Playgroud)

我想要输出的是:

wget http://example.com/search/link0
wget http://example.com/search/link1
wget http://example.com/search/link2
wget http://example.com/search/link3
wget http://example.com/search/link4
wget http://example.com/search/link0
Run Code Online (Sandbox Code Playgroud)

但我实际得到的只是:

    wget http://example.com/search/link
Run Code Online (Sandbox Code Playgroud)

bash arithmetic-expressions modulo

146
推荐指数
4
解决办法
24万
查看次数

是否可以将(x == 0 || x == 1)简化为单个操作?

所以我试图在Fibonacci序列中尽可能紧凑地写出第n个数:

public uint fibn ( uint N ) 
{
   return (N == 0 || N == 1) ? 1 : fibn(N-1) + fibn(N-2);
}
Run Code Online (Sandbox Code Playgroud)

但我想知道我是否可以通过改变来使其更加紧凑和高效

(N == 0 || N == 1)
Run Code Online (Sandbox Code Playgroud)

进入单一比较.是否有一些奇特的位移操作可以做到这一点?

c# algorithm optimization arithmetic-expressions

106
推荐指数
9
解决办法
1万
查看次数

编译器在这里做了什么:int a = b*(c*d*+ e)?

我的程序中有一个奇怪的错误,经过几个小时的调试后,我发现了以下非常愚蠢的行:

int a = b * (c * d *  + e)
Run Code Online (Sandbox Code Playgroud)

如果你没有看到它:在de我之间写的* +,只是一个+意图.

为什么这会编译,它实际上意味着什么?

c++ arithmetic-expressions

72
推荐指数
5
解决办法
7760
查看次数

为什么NaN ^ 0 == 1

由早期代码打高尔夫提示为什么会:

>NaN^0
[1] 1
Run Code Online (Sandbox Code Playgroud)

它非常有意义的NA^0是1,因为NA丢失数据,以及任何升至0号将为1,包括-InfInf.但是NaN应该代表非数字,为什么会这样呢?当?NaN州的帮助页面时,这更令人困惑/担忧:

在R中,基本上所有数学函数(包括基本算术)都应该与+/- Inf和NaN一起作为输入或输出正常工作.

基本规则应该是呼叫和与Infs的关系确实是具有适当数学限制的陈述.

涉及NaN的计算将返回NaN或NA:这两者中的哪一个不能保证并且可能依赖于R平台(因为编译器可能重新排序计算).

这背后有一个哲学原因,还是仅仅与R代表这些常数有关?

math r arithmetic-expressions

64
推荐指数
4
解决办法
2602
查看次数

如何将两个整数与Twisted一起添加?

我的程序中有两个整数; 让我们称他们为" a"和" b".我想将它们加在一起,结果得到另一个整数.这些是常规的Python int对象.我在想; 如何将它们与Twisted一起添加?performAsynchronousAddition某处有特殊功能吗?我需要一个Deferred吗?反应堆怎么样?是否涉及反应堆?

python asynchronous arithmetic-expressions twisted addition

47
推荐指数
2
解决办法
4645
查看次数

Python的= =浮点数上的等价关系吗?

在原生Python中,没有使用NumPy(为此numpy.nan != numpy.nan)没有NaN,所以我认为Python的浮点==是反身的吗?那么既然它是对称的(a == b暗示的b == a)和传递的(if a==bb==cthen a==c),我们可以说Python ==floats 上的等价关系吗?

编辑:好的,让我了解到,有一个楠:float('nan')(感谢@unutbu)将通过各种操作传播,但任何原生的Python方法返回它(而不是抛出一个异常),如果没有我在这项任务中引入了吗?

python floating-point arithmetic-expressions

35
推荐指数
2
解决办法
2423
查看次数

bash:$ [<arithmetic-expression>]与$((<arithmetic-expression>))

我刚刚偶然发现了bash语法:

foo=42
bar=$[foo+1] # evaluates an arithmetic expression
Run Code Online (Sandbox Code Playgroud)

当我用Google搜索时,我找到了 http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html#sect_03_04_05:

3.4.6.算术扩展

算术扩展允许评估算术表达式和结果的替换.算术扩展的格式是:

$(( EXPRESSION )) 
Run Code Online (Sandbox Code Playgroud)

...

只要有可能,Bash用户应尝试使用方括号的语法:

$[ EXPRESSION ] 
Run Code Online (Sandbox Code Playgroud)

但是,这只会计算EXPRESSION的结果,并且不进行测试......

在我的bash手册页中,我只能找到如下$(( EXPRESSION ))形式:

foo=42
bar=$((foo+1)) # evaluates an arithmetic expression
Run Code Online (Sandbox Code Playgroud)

那么什么测试不是用$[...]那个做的$((...)),或者$[...]只是遗留版本$((...))

legacy syntax bash arithmetic-expressions operators

29
推荐指数
2
解决办法
6257
查看次数

当二元运算符两边的签名不同时,促销规则如何工作?

考虑以下程序:

// http://ideone.com/4I0dT
#include <limits>
#include <iostream>

int main()
{
    int max = std::numeric_limits<int>::max();
    unsigned int one = 1;
    unsigned int result = max + one;
    std::cout << result;
}
Run Code Online (Sandbox Code Playgroud)

// http://ideone.com/UBuFZ
#include <limits>
#include <iostream>

int main()
{
    unsigned int us = 42;
    int neg = -43;
    int result = us + neg;
    std::cout << result;
}
Run Code Online (Sandbox Code Playgroud)

+运算符如何"知道"返回哪个正确的类型?一般的规则是把所有的参数转换为最广泛的类型,但在这里没有明确的"赢家"之间intunsigned int.在第一种情况下,unsigned int必须选择作为结果operator+,因为我得到了结果2147483648.在第二种情况下,它必须选择int,因为我得到了结果-1.然而,在一般情况下,我没有看到这是如何可判定的.这是我看到的未定义的行为还是其他什么?

c++ arithmetic-expressions overflow integer-promotion

25
推荐指数
2
解决办法
8374
查看次数

对成员'=='的模糊引用

这一定是一个基本错误,但我看不出这段代码有什么问题:

.... object is some NSManagedObject ....
let eltType = ((object.valueForKey("type")! as! Int) == 0) ? .Zero : .NotZero
Run Code Online (Sandbox Code Playgroud)

在编译时,我收到此消息:

Ambiguous reference to member '=='
Run Code Online (Sandbox Code Playgroud)

将Int与0比较对我来说似乎并不含糊,所以我错过了什么?

arithmetic-expressions operators ios swift

25
推荐指数
1
解决办法
2万
查看次数