sách gpt4 ai đã đi

javascript(giá trị bool ^ giá trị bool)

In lại 作者:行者123 更新时间:2023-11-30 20:55:22 34 4
mua khóa gpt4 Nike

我正在重写一些 Javascript 代码以在 Excel VBA 中工作。由于在这个网站上搜索,我已经设法翻译了几乎所有的 Javascript 代码!但是,有些代码我无法准确理解它在做什么。这是一段 Javascript 代码:

var k = x % y;
return (k != 0 && (k > 0 ^ y > 0) && isFinite(y)) ? k + y : k;

第一行对我来说很清楚。 k 是 x/y 的余数。在第二行中,取模得到 k+y 或 k 的值。这是由 (k!=0 && (k > 0 ^ y > 0) && isFinite(y)) 决定的

有人可以逐步向我解释我应该如何阅读这段代码吗?特别是 &&(k>0^y>0)&& 让我很困惑。

这是我到目前为止的进展:

示例 1:x=9 和 y=4

k = 9%4 = 9/4=2 with remainder 1 So: k=1
(1!=0&&(1>0^4>0)&&isFinite(4)) (True AND (True^True) AND True) = True?

示例 1:x=9 和 y=1

k = 9%1 = 9/1=9 with remainder 0 So: k=0
(0!=0&&(0>0^1>0)&&isFinite(1)) (False AND (False^True) AND True) = False?

如果我纯粹从数学 Angular 思考,那么我猜 (False^True) 部分应该读作 (0^1) = 0 = False。

1 Câu trả lời

^ 运算符是异或或异或按位运算符。仅当且仅当一个值为真时,它才返回真。如果两者都为真,或者都为假,则结果为假

Từ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_XOR :


a b a 异或 b
0 0 0
0 1 1
1 0 1
1 1 0

至于为什么你的第二个例子返回 FALSE,那是因为你使用了 AND 逻辑:

FALSE && (FALSE ^ TRUE) && TRUE 导致 FALSE && TRUE && TRUE 等同于 FALSE.

关于javascript( bool 值 ^ bool 值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719193/

34 4 0
Bài viết được đề xuất: c - C 中无符号短整型的加法和减法
Bài viết được đề xuất: c - C编译器如何解释以下代码序列
Bài viết được đề xuất: c# - 未返回 Active Directory 组
Bài viết được đề xuất: c - 当 malloc 结构指针时,它们的固定大小变量是否会进入堆栈?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com