gpt4 book ai didi

c - 按位运算——算术运算

转载 作者:行者123 更新时间:2023-11-30 18:32:57 25 4
gpt4 key购买 nike

您能用一些很好的例子来解释下面几行吗?

A left arithmetic shift by n is equivalent to multiplying by 2n (provided the value does not overflow).

还有:

A right arithmetic shift by n of a two's complement value is equivalent to dividing by 2n and rounding toward negative infinity. If the binary number is treated as ones' complement, then the same right-shift operation results in division by 2n and rounding toward zero.

最佳答案

我将解释一下我们更熟悉的基地中发生的情况:10。

以 10 为基数,假设您有一个数字 N=123。现在,您将这个数字向左“移动”k=3 个位置,用 0 填充空的数字。因此您得到 X=123000。

请注意,X = N * 10k

基数为 2 的情况类似。

 Example 1 (base 10)   |  Example 2 (base 2)
|
N = 123 | N = 110101 (53 in base 10)
k = 3 | k = 2 (in base 10)
N << k = 123000 | N << k = 11010100 (212 in base 10)
|
10^k = 1000 | 2^k = 100 (in base 2; 4 in base 10)
N * 10^k = 123000 | N * 2^k = 11010100 (53 * 4 = 212 in base 10)
|

右移的情况只是该过程的镜像,并且在基数 10 中也类似。例如,如果我在基数 10 中有 123456,并且我“右移”3 个位置,则得到 123。这是123456/1000(整数除法),其中 1000 = 103

关于c - 按位运算——算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2800752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com