返回介绍

数字运算符

发布于 2024-10-12 12:51:52 字数 1337 浏览 0 评论 0 收藏 0

对于两个整数 x 和 y。整数商 q=x/y 和余数 r=x%y 遵循以下规律。

x = q*y + r  and  |r| < |y|

x/y 截断为 0。

x     y     x / y     x % y
 5     3       1         2
-5     3      -1        -2
 5    -3      -1         2
-5    -3       1        -2

作为这个规则的例外情况,如果 x 非常大,那么 q=x/-1 等于 x。

x, q
int8                     -128
int16                  -32768
int32             -2147483648
int64    -9223372036854775808

如果除数是一个常量。那么它不能是 0,如果除数在运行时为 0,会导致运行时恐慌。如果除数是负数并且除数是:

x     x / 4     x % 4     x >> 2     x & 3
 11      2         3         2          3
-11     -2        -3        -3          1

位移运算符移动左侧运算元右侧元算元指定的位数。如果左侧是有符号整型,那它就实现了位移运算,如果是无符号整数使用逻辑位移。位移运算没有上限,位移操作让左边运算元位移 n 个 1。 x<<1x*2 是相等的。并且 x>>1x/2 是相同的。

对于整数运算元,一元运算符+-^定义如下:

+x                          is 0 + x
-x    negation              is 0 - x
^x    bitwise complement    is m ^ x  with m = "all bits set to 1" for unsigned x
                                      and  m = -1 for signed x

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文