- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在《K&R II C 编程 ANSI C》一书中读到,“>>”和“<<”运算符控制位,当然,由于我是菜鸟,我不明白何时使用它们。我对弄清楚如何手动构建数据包很感兴趣,并且发现了以下代码片段:
unsigned short csum(unsigned short *buf, int nwords)
{
unsigned long sum;
for(sum=0; nwords>0; nwords--)
sum += *buf++;
sum = (sum >> 16) + (sum &0xffff);
sum += (sum >> 16);
return (unsigned short)(~sum);
}
我知道这会计算校验和,但我不明白这里发生了什么。 XD
显然这超出了我的技能范围,但我想我可以使用这个片段作为替罪羊来找出一些未解答的问题。 何时您知道何时使用按位运算符来获得某个值,为什么不直接加 (+) 或减 (-) 呢?另外,如果没有运算符,为什么 tổng hợp
旁边有一个十六进制 &0xffff
?
附注~sum
Điều này có nghĩa là gì?
1 Câu trả lời
这不是一个问题,而是一大堆问题。 :)
& 0xffff
通过屏蔽所有高位来确保该值是 16 位。这假设系统的 unsigned long
至少有 16 位宽,这是一个非常安全的假设。 &
(按位AND
)通常用于此目的。看truth table对于逻辑连接并思考“假为 0,真为 1”,看看它是如何工作的。&
是 C 的按位 AND 运算符,用于执行我上面描述的屏蔽。基本上,对于单位变量 a & b
,当且仅当 Một
Và b
时,结果为 1
> 是 1。运算符将此逻辑应用于其输入项中的每对位。~
运算符是 C 的按位反转,它“翻转”其参数的位。它通常用于创建蒙版。
关于C 编程 - 按位运算符并了解何时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10899881/
Toán tử Or thực hiện phép toán logic OR trên hai biểu thức. result = expression1 Hoặc expression2 Tham số result Bất kỳ biến số nào. biểu thức1 Bất kỳ
Toán tử Not thực hiện phép toán logic NOT trên một biểu thức. result = Không phải biểu thức Tham số result Bất kỳ biến số nào. biểu thức Bất kỳ biểu thức nào. Bảng sau đây cho thấy cách
Toán tử Is so sánh hai biến tham chiếu đối tượng. result = object1 Là object2 Tham số result Bất kỳ biến số nào. object1 Bất kỳ tên đối tượng nào. object2 Bất kỳ
Toán tử \ chia hai số và trả về kết quả dưới dạng số nguyên. result = number1\number2 Tham số result Bất kỳ biến số nào. number1 Bất kỳ biểu thức số nào. số
Toán tử And thực hiện phép toán logic AND trên hai biểu thức. result = expression1 Và expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Toán tử + tính tổng của hai số. result = expression1 + expression2 Tham số result Bất kỳ biến số nào. expression1 Bất kỳ biểu thức nào. kinh nghiệm
Tôi thấy khó hiểu với đoạn mã này: var n1 = 5-"4"; var n2 = 5+"4"; alert(n1); alert(n2); Tôi biết n1 là 1. Đó là bởi vì toán tử trừ biến chuỗi "4" thành
Tôi nghĩ tôi sẽ đạt được 12 điểm, không phải 7 điểm. w++, khi đó w sẽ bằng 4, tức là 100, và w++, w sẽ bằng 8, tức là 1000; do đó w++|z++ sẽ bằng 100|1000 = 1100 sẽ bằng 12. Tôi bị sao thế này? số nguyên
Toán tử Xor thực hiện phép toán logic "OR loại trừ" trên hai biểu thức. result = expression1 Xor expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Toán tử Mod chia hai số và trả về số dư. result = number1 Mod number2 Tham số result Bất kỳ biến số nào. number1 Bất kỳ biểu thức số nào. số
Toán tử Imp thực hiện hàm ý logic trên hai biểu thức. result = expression1 Imp expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Toán tử Eqv thực hiện tính tương đương logic của hai biểu thức. result = expression1 Tương đương expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Tôi có một lớp vectơ toán học đơn giản với phép toán quá tải. Tôi muốn có một số kết quả về thời gian cho người điều hành của tôi. Tôi có thể dễ dàng tính thời gian cho +=, -=, *= và /= của mình bằng cách tính thời gian cho đoạn mã sau: Vector sum; for(s
Tôi mới làm quen với toán tử so sánh do người dùng định nghĩa. Tôi đang đọc một cuốn sách có đề cập đến ví dụ sau: struct P { int x, y; bool operator, operator<>
Trên trang Wikipedia về SQL, có một số bảng chân trị cho logic bool trong SQL. [1] Trang Wikipedia dường như được lấy từ tiêu chuẩn SQL:2003. Bảng chân lý cho toán tử bằng (=) giống với I trong bản thảo SQL:2003.
Tôi tình cờ gặp một toán tử C++ kỳ lạ. http://www.terralib.org/html/v410/classoracle_1_1occi_1_1_number.html#a0f2780081f
Tôi đã đọc về một câu hỏi trong SO và trong các câu trả lời có đề cập như sau: Nếu không tìm thấy hàm giải phóng khớp rõ ràng nào, pr
Tôi tình cờ tìm thấy giải pháp này nhưng tôi không hiểu chính xác điều gì đang diễn ra trong đó. Có ai giải thích được không! Theo tôi hiểu thì nó cố gắng tính số ô trong lưới a*b bằng cách đếm một nửa số ô rồi nhân đôi chúng. Nhưng tôi không hiểu được lệnh gọi đệ quy. Xin vui lòng không đề xuất các giải pháp khác
Kiểu cơ bản của Go Kiểu Boolean bool Độ dài: 1 byte Giá trị: Các giá trị kiểu Boolean chỉ có thể là true hoặc false và không thể biểu diễn bằng số Số nguyên Kiểu số nguyên phổ quát int / uint (có dấu / không dấu, tương tự bên dưới) Độ dài: Theo phép toán
Trong hướng dẫn này, bạn sẽ tìm hiểu về các toán tử khác nhau có trong JavaScript và cách sử dụng chúng thông qua các ví dụ. Toán tử là gì? Trong JavaScript, toán tử là các ký hiệu đặc biệt được sử dụng để thực hiện các phép toán trên toán hạng (giá trị và biến). Ví dụ,
Tôi là một lập trình viên xuất sắc, rất giỏi!