gpt4 book ai didi

c - 如何乘以十六分之三

转载 作者:太空狗 更新时间:2023-10-29 15:41:59 25 4
gpt4 key购买 nike

<分区>

我需要将一个数字乘以 3/16,舍入为零,仅使用按位运算,例如 ! ~ & ^ | + << >> .到目前为止,我有以下内容,唯一的问题是当数字为负时它不起作用,它总是向下舍入而不是零。我知道应该有按位 if 语句,如果 x 为负则加 15。但我不知道如何实现它,任何帮助表示赞赏。

int ezThreeSixteenths(int x) {
int times_two = x << 1;
int times_three = times_two + x;
int divide_eight = times_three >> 4;
int a = 0b11111111;
int a1 = a << 8;
int a2 = a << 16;
int a3 = 0b11111 << 24;
int mask = a | a1 | a2 | a3;
int final = divide_eight & mask;
return final;
}

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