c、c#、Java、python、Matlab 部分运算符及常见运算的比较

本文详细对比了C/C++、C#、Java、Python和Matlab等编程语言中的基本数学运算、位运算和逻辑运算,包括加减乘除、取余、取模、幂次方、指数、对数、位与、位或、位非、左移、右移、逻辑与、逻辑或和逻辑非等运算的语法和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见运算比较
数学运算c/c++c#JavapythonMatlab
加法a+ba+ba+ba+ba+b
减法a-ba-ba-ba-ba-b
乘法a*ba*ba*ba*ba*b
普通除法a/b 要求计算数为浮点数a/b 要求计算数为浮点数a/b 要求计算数为浮点数a/ba/b
整除a/b 要求计算数为整数正数向下取整,负数向上取整)。也可以使用取整函数,向下取整floor(a/b),向上取整ceil(a/b),需要包含math.h头文件。注意函数类型以及计算数类型为double,计算结果不能使用%d格式输出(因为即使计算数定义为整数,计算结果也会在前面补0,导致使用%d格式去输出结果时只会截取前面的四个字节,就得到了0)a/b 要求计算数为整数正数向下取整,负数向上取整)。也可以使用内部math类中的取整函数,向下取整Math.Floor(a/b),向上取整Math.Ceiling(a/b),“四舍六入五取偶”取整Math.Round(a/b)a/b 要求计算数为整数正数向下取整,负数向上取整)。也可以使用内部math类中的取整函数,向下取整Math.floor(a/b),向上取整Math.ceil(a/b),四舍五入取整(正数四舍五入,负数五舍六入) Math.round(a/b)

a//b(为向下取整),向上取整需要调用math.ceil(a/b)函数,首先要导入math模块:import math

没有对应运算符,需要调用函数,截尾取整 fix(a/b)向下取整floor(a/b)向上取整ceil(a/b)
取余a%b ,正负规则相同,均为a=qb+r (r 符号同 a),比如 7%3=1,-7%3=-1a%b ,正负规则相同,均为a=qb+r (r 符号同 a),比如 7%3=1,-7%3=-1a%b ,正负规则相同,均为a=qb+r (r 符号同 a),比如 7%3=1,-7%3=-1没有对应的运算符,也没有对应函数,需要自行编程实现没有对应的运算符,需要调用函数,rem(a,b),正负规则相同,均为a=qb+r (r 符号同 a),比如 7%3=1,-7%-3=-1
取模没有对应运算符,也没有对应函数,需要自行编程实现没有对应运算符,也没有对应函数,需要自行编程实现没有对应运算符,也没有对应函数,需要自行编程实现a%b ,正负规则相同,均为a=qb+r (r 符号同 b),比如 -7%3=2,-7%-3=-1没有对应运算符,需要调用函数,mod(a,b),正负规则相同,均为a=qb+r (r 符号同 b
幂次方没有对应运算符,需要调用库函数 pow(a,b),包含math.h头文件,注意pow的函数类型以及计算数类型为double,计算结果不能使用%d格式输出(因为即使计算数定义为整数,计算结果也会在前面补0,导致使用%d格式去输出结果时只会截取前面的四个字节,就得到了0)没有对应运算符,需要调用内部math类中的函数 Math.Pow(a,b)没有对应运算符,需要调用内部math类中的函数 Math.pow(a,b)a**b或者调用函数pow(a,b)a^b
e的幂次方需要调用库函数 exp(a),包含math.h头文件,计算结果不能使用%d格式输出需要调用内部math类中的函数 Math.Exp(a)需要调用内部math类中的函数 Math.exp(a)math.exp(a),首先要导入math模块:import mathexp(a)
对数以自然常数e为底的函数 log(a),以10为底的函数log10(a),底数无法任意指定Math.Log(a,b) ,以b为底的a的对数。参数b可以省略,省略时默认以自然常数e为底。 Math.Log10(a),以10为底以自然常数为底 Math.log(a),以10为底 Math.log10(a),以自然常数为底 Math.log1p(a) =Math.log(a+1)math.log(a,b) ,以b为底的a的对数。参数b可以省略,省略时默认以自然常数e为底。首先要导入math模块:import math以自然常数为底 log(a),以2为底 log2(a),以10为底 log10(a),底数无法任意指定

取余取模的区别:取余得到的余数始终与被除数的符号保持一致,取模得到的模数始终与除数的符号保持一致取余运算在计算商值时向0方向舍弃小数位,取模运算在计算商值时向负无穷方向舍弃小数位(或者说,取余,遵循尽可能让商大的原则。取模,遵循尽可能让商小的原则)。

 

位运算与逻辑运算
位运算c/c++c#javapythonmatlab
按位与a&ba&ba&ba&bbitand(a,b)
按位或a|ba|ba|ba|bbitor(a,b)
按位非~a~a~a~abitcmp(a)
左移n位a<<na<<na<<na<<nbitshift(a,n)
右移n位a>>na>>na>>na>>nbitshift(a,-n)
按位异或a^ba^ba^ba^bbitxor(a,b)
逻辑运算     
逻辑与a&&ba&&ba&&ba and ba&&b
逻辑或a||ba||ba||ba or ba||b
逻辑非!a!a (只能用于bool类型)!a (只能用于bool类型)not anot a

matlab中关于按位运算还有两个函数,bitget(a,n) 表示获取a的二进制形式第n位的值,bitset(a,n,v) 表示设置a的二进制形式第n位的值为v,其中v可省略,此时默认为1。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值