sách gpt4 ăn đã đi

(number & -number) có nghĩa là gì trong lập trình tại chỗ?

In lại Tác giả: IT Lão Cao Thời gian cập nhật: 28-10-2023 12:14:15 30 4
mua khóa gpt4 giày nike

Ví dụ:

int lấy(int i) {
int res = 0;
trong khi (i) {
res = (res + cây[i]) % MOD;
tôi -= ( (i) & (-i) );
}
trả về res;
}

Chức năng cập nhật cây:

void cập nhật(int i, int val) {
trong khi (i <= m) {
cây[i] = (cây[i] + giá trị) % MOD;
tôi += ( (i) & (-i) );
}
}

bạn có thể giải thích chúng bằng cách sử dụng mã không ( (tôi) và (-tôi) ) Có chuyện gì đã xảy ra à?

câu trả lời hay nhất

Hãy để tôi giả sử rằng các giá trị âm được biểu diễn bằng ký hiệu bù hai. trong trường hợp này,-Tôi có thể được tính như (~tôi)+1(lật bit rồi cộng 1).

Ví dụ, hãy để tôi xem xét tôi = 44. Sau đó, ở dạng nhị phân,

tôi = 0000 0000 0000 0000 0000 0000 0010 1100
~tôi = 1111 1111 1111 1111 1111 1101 0011
-i = (~i)+1 = 1111 1111 1111 1111 1111 1101 0100
(i) & (-i) = 0000 0000 0000 0000 0000 0000 0000 0100

Như bạn có thể thấy, bạn có thể sử dụng (tôi) và (-tôi) Bit nhỏ nhất được tính là 1.

Về c++ - (number & -number) có nghĩa là gì trong lập trình tại chỗ? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/35861228/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress