Xin chào. Chào mừng trở lại. Trong bài
giảng này, chúng ta sẽ thảo luận về một số toán tử cơ bản được
hỗ trợ bởi ngôn ngữ lập trình c.
Vì vậy, các toán tử một lần nữa chỉ là các ký hiệu đặc biệt cho các chức năng
bạn đang thực hiện một số loại hoạt động.
Vì vậy, chúng ta sẽ thảo luận về cơ bản trong bài giảng này
4 loại toán tử khác nhau.
Các toán tử số
học, logic, phép gán và quan hệ.
Và sau đó chúng ta sẽ thảo luận trong một bài giảng khác về các
toán tử bitwise và sau đó là một vài toán tử đặc biệt khác không thực sự giống
như chúng là một toán tử, nhưng chúng là, kích thước của toán tử và toán tử ép kiểu.
Vì vậy, một toán tử số học có lẽ là một phép toán thông dụng
nhất, một phép toán mà bạn có thể quen thuộc nhất. Đó là một hàm toán học,
nhận 2 toán hạng và thực hiện phép tính trên chúng.
Nó infix nên các toán tử và giữa các toán hạng.
Một toán tử logic, đôi khi được gọi là toán tử Boolean, là
một toán tử trả về kết quả Boolean. Giá trị đúng hay sai, đó là giá trị Boolean.
Vì vậy, nó thực sự chỉ là một toán tử điều kiện.
Nó dựa trên kết quả Boolean của một hoặc nhiều hơn 2 biểu thức
khác, một hoặc hai biểu thức khác.
Một toán tử gán chỉ đặt các biến bằng giá trị.
Nó gán giá trị của biểu thức ở bên phải của nó cho biến ở bên trái của nó.
Vì vậy, nó là một toán hạng bên phải và một toán hạng bên trái.
Một lần nữa, nó là infix.
Và sau đó một toán tử quan hệ sẽ so sánh các biến với nhau.
Vì vậy, đây là loại thứ tự kiểu có thể so sánh được, nhỏ hơn và lớn hơn.
Nhưng chúng ta hãy xem xét từng cái trong số chúng vì có rất
nhiều, rất nhiều toán tử khác nhau. C hỗ trợ một tập hợp siêu giàu.
Vì vậy, những người đầu tiên là những toán tử số học trong c.
Đây là các hàm toán học. Vì vậy, có một
bảng nhỏ mà tôi tìm thấy trực
tuyến từ trang web hướng dẫn điểm, rất hay.
Và điều này tóm tắt tất cả các toán tử số học trong c được hỗ trợ.
Vì vậy, những cái cơ bản, giống như trong toán học. Không có gì thực sự mới ở đây.
Ở phía bên trái của bảng là toán tử, và ở
giữa là mô tả những gì nó làm và sau đó ở bên phải là một ví dụ.
Vì vậy, biểu tượng dấu cộng sẽ thêm
vào toán hạng. Nó infix. Nó nằm giữa 2 toán hạng.
Vì vậy, những gì bạn sẽ làm là bạn có thể thêm
các biến, bạn có thể thêm một tổ hợp các hằng số trong một biến hoặc chỉ hằng số.
Và cái này chúng ta đang nói a cộng b bằng 30.
Nhưng toán tử thực tế và toán hạng chỉ là một cộng b.
Và đó sẽ là ví dụ.
Phép trừ 2 toán hạng, a trừ b.
Vì vậy, a trừ b thực sự có thể bằng một cái gì đó giống
như âm 10 nếu a bằng 20 và b bằng 10 hoặc
b bằng 10 âm.
Dấu hoa thị là để nhân.
Một lần nữa infix ở
giữa các toán hạng.
Phép chia là dấu gạch chéo.
Phần trăm là toán tử mô-đun. Đây là toán tử còn lại.
Vì vậy, nếu bạn nói như một biến phần trăm a,
thì điều đó sẽ bằng bao nhiêu. Nếu b bằng 20, a bằng
12, toán tử
môđun sẽ trả về 8 vì đó là phần dư của 20 chia cho 12.
Cộng với cộng và trừ trừ, đây là các toán tử tăng và giảm cụ thể.
Chúng vẫn được gọi là toán tử số học, nhưng bạn thường chỉ thấy chúng
chủ yếu trong các vòng lặp khi lặp lại mã,
nhưng không phải lúc nào cũng vậy. Ý tôi là trong ví dụ
này ở đây, về cơ bản bạn đang tăng một biến số lên
1 hoặc theo một giá trị cụ thể nếu
bạn đang làm việc khác. Nhưng vì vậy nếu bạn thực hiện
một phép cộng cộng, bất kể a là 5, nó sẽ không bằng 6.
Và sau đó có một toán tử giảm,
làm giảm giá trị số nguyên đi 1, do đó, một trừ đi.
Còn dấu cộng và dấu trừ bạn nên để ý là sau biến.
Điều này được gọi là postfix.
Và điều này có nghĩa là nếu biến đó nằm trong một biểu thức,
thì nó thực sự sẽ không được gán thêm biến đó cho đến sau câu lệnh đó.
Nếu nó là tiền tố,
nó sẽ được chỉ định trước đó. Vì vậy, chúng ta hãy xem qua một số ví
dụ về các khối mã hoạt động số học này để chúng có ý nghĩa hơn một chút.
Vì vậy, đây là các khối mã, đây là quy trình chính của chúng tôi.
Bây giờ chúng tôi đã quen với điều này. Tôi sẽ chỉ tạo một vài biến và
thực hiện một số thao tác trên chúng và sau đó in chúng ra.
Và tôi sẽ chỉ tạo ra các số nguyên. Và không quan trọng mặc dù bạn có thể tạo phao để thực
hiện các phép tính hoặc nhân đôi, nhưng chúng tôi sẽ chỉ làm cho nó cơ bản.
Chúng tôi sẽ nói a bằng 33.
Tạo một biến kiểu số nguyên khác và chúng tôi sẽ gán
biến đó cho 15. Vì vậy, chúng tôi đang thực hiện một khai báo và một phép gán trong một câu lệnh duy nhất.
Và sau đó chúng ta sẽ có một biến kết quả.
Và điều này sẽ được khởi tạo bằng 0 để ở đây chúng
ta có thể bắt đầu thực hiện các phép tính. Chúng ta có thể nói c,
và chúng ta có thể làm bài tập. Chúng tôi chưa được học chính thức về bài tập cụ
thể, nhưng chúng tôi biết bài tập là gì. Bài tập đang lấy dữ liệu và đưa
dữ liệu đó vào biến đó. Vì vậy, c bằng là
lấy bất kỳ thứ gì ở bên phải và đưa kết quả vào biến đó.
Vì vậy, nếu chúng ta nói a cộng với b, một lần
nữa điều này giống như một quy trình toán học
bình thường, và đúng như vậy. Nó sẽ chỉ là 33 cộng với 15, và giá trị
của c, 48 sẽ là bao nhiêu. Và vì vậy bạn có thể chỉ cần in ra các giá trị.
Bạn chỉ có thể nói c là phần trăm d bằng cách sử dụng công cụ định dạng
của chúng tôi và chỉ cần in ra c.
Và sau đó có lẽ chúng tôi có thể thực hiện một nguồn cấp dữ liệu dòng.
Và điều đó sẽ chỉ thêm 2 số. Đó là cơ bản. Nó đơn giản mà.
Chúng tôi chỉ hiển thị nó. Vì vậy, khi chúng ta chạy chương trình
này, chúng ta sẽ thấy phép cộng của 33 cộng với 15.
Chúng tôi biên dịch lại nó, lưu nó, nói là xây dựng, và sau
đó lưu chạy.
Bạn sẽ thấy rằng khi tôi chạy nó sau trình quét vi rút của mình, nó cho biết c là 48.
Vì vậy, bạn có thể chơi xung quanh với những thứ này. Ý tôi là đây là những điều cơ bản. Vì vậy, a cộng
với b, bạn có thể thực hiện phép trừ, bạn có thể thực hiện dấu hoa thị cho phép nhân,
và sau đó bạn có thể thực hiện phép
chia cho dấu gạch chéo và sau đó là ký hiệu phần trăm là môđun.
Vì vậy, điều này thật thú vị vì bạn biết 33 chia cho 15 sẽ là 2 với phần dư là
3, vì vậy kết quả sẽ là 3 trong trường hợp này, hãy đảm bảo mặc dù vậy.
Lưu điều này và đảm bảo rằng chúng tôi đóng quá trình thực thi của mình.
Và khi chúng ta chạy nó, chúng ta có thể thấy rằng
chúng ta có
c bằng 3 vì đó là phần còn lại.
Nếu không, nó khá cơ bản. Những cái quan trọng với điểm
cộng là hiểu tiền tố và hậu tố.
Vì vậy, nếu tôi phải nói và điều này phù hợp hơn khi bạn thực sự làm điều đó trong một câu lệnh duy nhất, printf.
Vì vậy, giả sử tôi in ra một dấu
cộng cộng, những gì sẽ in ra là 34 bởi vì bạn
sẽ tăng a lên 1 và
sau đó in ra. Nhưng bạn sẽ làm điều đó trong một câu lệnh duy
nhất, bạn sẽ làm trong cùng một dòng vì nó diễn ra sau đó.
Vì vậy, thực sự những gì sẽ được hiển thị
ở đây là nó sẽ chỉ hiển thị 33.
Nó sẽ không thực sự tăng a cho đến dòng mã tiếp theo.
Vì vậy, nếu chúng tôi chạy
điều này, bạn sẽ thấy nó chỉ in ra 33.
Bây giờ đó là sự khác biệt giữa thực hiện một cộng với một.
Nếu bạn thực hiện cộng cộng với a, cũng giống như điều bạn sẽ
tăng lên một, sự khác biệt ở đây là bạn sẽ tăng nó lên 1 và sau
đó trước khi câu lệnh được thực thi. Vì vậy, ở đây bây giờ
chúng tôi sẽ nhận
thấy rằng chúng tôi chỉ có một
vài cảnh báo, không có lỗi. Và khi chúng tôi chạy nó, bây giờ bạn sẽ thấy câu trả lời là 34
vì nó thực sự tăng lên trước khi câu lệnh được thực thi. Và điều quan trọng
cần biết giữa tên biến cộng cộng với tên biến cộng cộng.
Đó chỉ được gọi là tiền tố và hậu tố.
Điều tương tự cũng sẽ xảy ra đối với dấu trừ trừ.
Vì vậy, hãy ghi nhớ những điều đó cho cả năm
của bạn.
Đây cũng là các toán tử một ngôi vì chúng chỉ có một toán hạng.
Các toán tử khác là toán tử nhị phân vì chúng có một toán
tử ở giữa các toán hạng.
Nhưng hiểu rõ trừ trừ so với cộng trừ.
Và sau đó cũng hiểu nếu bạn đặt nó trước biến sau biến
khi nó thực sự tăng hoặc giảm.
Và một lần nữa, tất cả chỉ là nếu
nó ở sau biến, nó tăng hoặc giảm ngay tại
đó trước khi thực thi dòng mã. Nếu nó nằm trước biến, nó sẽ
thực thi dòng mã và sau đó sau khi được thực thi câu lệnh,
nó sẽ tăng hoặc giảm.
Nhưng hãy thử với điều này, mở một cửa sổ, thực
hiện một loạt các biểu thức số học khác nhau và xem cách tất cả hoạt động.
Bây giờ chúng ta hãy nói về một số loại toán tử khác.
Nhóm toán tử tiếp theo được gọi là toán tử logic.
Và chúng tôi đã định nghĩa điều này có nghĩa là gì về cơ bản nó
là các toán tử kiểu có điều kiện. Chúng trả về kết quả Boolean, giá
trị true hoặc false.
Vì vậy, các ký hiệu đại diện cho các toán tử logic là dấu "và" và.
2 dấu thanh song song và dấu chấm than.
Dấu và dấu và được gọi là toán tử và lôgic.
Nó cũng là một toán tử infix có 2 toán hạng, một ở
bên trái, một ở bên. Về cơ bản, nếu
mỗi toán hạng khác 0, thì điều kiện trở thành true.
Và do đó, khác 0 có nghĩa là 1, có nghĩa là đúng. Vì vậy, nếu a đúng và b
đúng, thì câu trả lời sẽ là
đúng.
Nếu a sai và b đúng,
câu trả lời là sai. Nếu a sai và b sai, câu trả lời
là sai. Vì vậy, một lần nữa, chúng tôi sẽ làm một số ví dụ về điều đó.
Và sau đó các thanh song song là logic hoặc toán tử. Một lần nữa, điều này sẽ tương tự với lớp toán của bạn,
vì vậy tôi không muốn dành quá nhiều thời gian cho nó. Nhưng nếu bất kỳ toán hạng nào trong
2 toán hạng
khác 0, một trong hai toán hạng là true, thì nó đúng. Vì vậy, nếu a đúng và b sai, nó đúng.
Và đây là những biểu thức trả về giá trị.
Vì vậy, kết quả trả về sẽ là nếu a đúng và b sai, kết quả trả về sẽ là true.
Và sau đó toán tử logic not là dấu chấm than, điều này chỉ đảo
ngược trạng thái logic của toán hạng của nó.
Vì vậy, nếu điều kiện là đúng, nó sẽ trả về sai.
Vì vậy, nếu bạn nói không phải a, dấu chấm than và a là true a là false.
Nếu bạn không đặt bên ngoài dấu ngoặc đơn, thì bất kỳ giá trị a và b nào được đánh giá
cho nó bây giờ sẽ có giá trị ngược lại.
Vì vậy, chúng ta hãy xem xét lại một số ví dụ và khối mã.
Đây là khối lạnh. Và một lần nữa, tôi sẽ tạo một vài biến để chứng minh các toán tử logic.
Một lần nữa, tôi sẽ chỉ tạo một số số
nguyên, chúng tôi sẽ nói a bằng 12 và sau đó b bằng 20.
Và điều sẽ tốt hơn là chúng tôi sẽ tạo
một vì tôi không muốn sử dụng các điều kiện, vì vậy chúng tôi sẽ
chỉ tạo một bool gạch dưới và chúng tôi sẽ chỉ định điều đó, tôi sẽ
nói rằng đó sẽ là kết quả và
ban đầu chúng tôi
sẽ không gán điều đó cho bất cứ điều gì.
Và sau đó chúng tôi sẽ chỉ in ra một số dữ liệu.
Vì vậy, chúng ta muốn xem các giá trị
này được trả về là gì nếu chúng ta sử dụng các toán tử logic.
Vì vậy, ở đây tôi sẽ in ra
phần trăm d, là một số nguyên. Bởi vì hãy nhớ rằng, biểu thức Boolean
chỉ là số nguyên.
Các biến Boolean là các số nguyên. Vì vậy, nếu giá trị Boolean là 1, thì điều
đó có nghĩa là nó đúng.
Nếu nó là 0, nó sai. Bất cứ điều gì khác thường là 1, đó là sự thật.
Vì vậy, tôi sẽ chỉ in ra kết quả.
Và sau đó tôi sẽ gán một số dữ liệu cho nó. Vì vậy, nếu tôi nói kết
quả bằng a và b, bây giờ điều đó sẽ
không có nghĩa lý gì bởi vì đây là những con số.
Vì vậy, hãy khởi tạo một bằng với true,
và một lần nữa sử dụng Booleans.
Và ở đây chúng tôi sẽ
nói điều này là đúng và điều này là đúng.
Và khi chúng ta sử
dụng dấu và, điều này nói rằng a và b đều phải đúng để kết quả trả về là đúng.
Vì vậy, kết quả sẽ in ra 1 vì 1
đại diện cho true. Vì vậy, hãy xây dựng
cái này và
đảm bảo rằng chúng ta phải sử
dụng đúng không gian tên. Vì vậy, chúng tôi sẽ chỉ đại diện cho 1 cho đúng
và 1 bởi vì chúng tôi không thực hiện
đúng bao gồm ngay bây giờ, vì vậy đó không phải là vấn đề lớn. Vì vậy, bây giờ chúng tôi chạy, nó sẽ báo
cáo true, 1 và nó hiện 1.
Bây giờ nếu tôi thay đổi bất kỳ điều nào trong số này thành không đúng,
nếu tôi nói 0, thì kết quả sẽ là
sai vì cả a và b đều phải đúng để kết quả là đúng.
Vì vậy, nếu tôi xây dựng cái này và tôi
chạy nó, bạn sẽ thấy rằng kết quả là 0
vì nó sai.
Vì vậy, một trong hai nếu tôi thay đổi a hoặc
b thành 0, có nghĩa là sai, kết quả sẽ là sai vì cả a và b đều phải đúng.
Bây giờ nếu tôi nói một thanh song song thanh
song song, đó là hoặc a hoặc b, chỉ một trong số chúng phải đúng để kết quả là đúng.
Vì vậy, trong trường hợp này, kết quả phải là 1.
Vì vậy, hãy xây dựng cái này và chạy nó.
Và bây giờ chúng ta có giá trị là 1.
Vì vậy, chỉ một trong số chúng phải đúng. Vì vậy, bây giờ nếu tôi làm
cho cả hai đều sai
và điều này sẽ được áp dụng nhiều hơn khi chúng ta nói về câu lệnh if
và điều kiện và đưa ra quyết định, nhưng tôi đang chứng minh logic Boolean ở đây.
Bây giờ cả hai đều sai. Vì vậy,
điều này sẽ trả về 0, là
false và nó là 0, khá gọn gàng. Và sau đó biểu tượng cuối cùng chỉ là biểu tượng not,
là dấu chấm than chỉ làm ngược lại.
Vì vậy, nếu tôi nói không phải
a, nếu a bằng 0, a bây giờ sẽ
bằng 1 hoặc kết quả sẽ là và kết quả sẽ bằng
1, chính là như vậy.
Vì vậy, đó là 3 toán tử logic. Một lần nữa, chúng sẽ thường được sử dụng trong các tuyên bố quyết định.
Bây giờ chúng ta hãy chuyển sang nói về một tập hợp các toán tử khác.
Bây giờ đây là các toán tử gán. Chúng ta khá quen thuộc với ít nhất là toán tử gán đơn
giản, đó là ký hiệu bằng. Biểu tượng bằng nhau chỉ định dữ liệu
và điều đó khá cơ bản. C bằng a cộng b, c sẽ là kết quả của a cộng b.
Bây giờ có những loại toán tử kết
hợp này, nơi bạn có thể thực hiện cộng bằng hoặc trừ bằng hoặc bằng sao.
Cộng bằng là nơi bạn thêm và toán tử gán.
Vì vậy, nó thêm toán hạng bên phải vào toán hạng bên trái và sau đó gán
kết quả cho toán hạng bên trái.
Vì vậy, bạn có thể nói c cộng bằng a, và điều đó cũng giống như nói c bằng c cộng với a.
Số trừ bằng chính điều tương tự ngoại trừ bạn đang trừ. Bạn đang trừ và sau đó bạn đang chỉ định.
Vì vậy, bạn trừ toán hạng bên phải khỏi toán hạng bên trái và sau đó gán dữ liệu.
Vì vậy, nếu bạn nói c trừ bằng a, thì thực sự c bằng c trừ a.
Đó là một ký hiệu viết tắt, những dấu cộng này bằng và dấu trừ bằng.
Bạn có thể viết mọi thứ nhanh hơn một chút vì
bạn thực hiện 2 thao tác
về cơ bản trong một câu lệnh duy nhất.
Và sau đó nhân cùng một thứ, sao bằng, nhân và gán.
Vậy c sao bằng a tương đương với c bằng c lần a.
Tôi nghĩ đó là điều khá dễ hiểu.
Các toán tử gán
khác cũng tương tự ngoại trừ bạn đang sử dụng phép chia. Vậy phép chia bằng là phép chia rồi có dấu.
Phần trăm là thực hiện mô-đun và sau đó gán kết quả.
Vì vậy, đó là những điều khá đơn giản.
Và sau đó chúng ta có một số cái khác, mà chúng ta sẽ nói đến trong một bài giảng khác chi tiết hơn.
Vì vậy, tôi sẽ không chạm vào chúng ở đây vì chúng thực sự hoàn toàn khác nhau.
Chúng được gọi là toán tử bitwise, được đặt bên trái
và tất cả những gì tôi đang nói ở đây là đối với những
toán tử bitwise mà chúng ta sẽ nói đến,
bạn cũng có thể gán chúng trong các câu lệnh đơn lẻ.
Vì vậy, chuyển dịch, thực hiện dịch chuyển
trái, chuyển phải và gán, bạn chỉ có thể làm nhỏ hơn bằng với và viết lớn hơn bất kỳ lớn hơn bằng nào.
Và một lần nữa ký hiệu và, củ cà rốt và thanh song song
đều liên quan đến việc thực hiện mọi thứ trên các bit.
Vì vậy, chúng ta sẽ quay lại điều đó, nhưng chúng là một phần của các toán tử gán.
Vì vậy, toán tử gán khá dễ dàng, gán dữ liệu và sau đó nếu bạn muốn
thực sự thực hiện các biểu thức, một vài biểu thức, sau
đó gán nó, bạn thực hiện các biểu thức kết hợp.
Các toán tử quan hệ là các toán tử so sánh. Họ so sánh 2 giá trị.
Vì vậy, điều này là quan trọng, bằng bằng. Chúng tôi sẽ so sánh giá trị của 2 biến.
Và nếu chúng giống nhau, nó sẽ trả về true vì nó sẽ trả
về biểu thức Boolean, true hoặc false hoặc giá trị Boolean.
Dấu chấm than bằng đang kiểm tra xem giá trị của 2 toán hạng có bằng nhau hay không.
Vì vậy, a không bằng b là cách bạn muốn đọc điều đó.
Nếu a đúng và b đúng,
thì điều đó sẽ trả về sai vì chúng bằng nhau.
Vì vậy, a sẽ phải
là false hoặc b sẽ phải là true hoặc ngược lại, và điều đó sẽ trả về true. Ký hiệu lớn hơn đang kiểm tra xem a có
lớn hơn b hay không.
Nhỏ hơn ký hiệu, a nhỏ hơn b. Lớn hơn bằng, a lớn hơn hoặc
bằng và nhỏ hơn bằng.
Vì vậy, một lần nữa, đây là tất cả các công cụ toán học cơ bản.
Tôi sẽ không xem qua các ví dụ trong IDE vì điều này khá đơn giản.
Toán tử so sánh cũng giống như trong toán học, lớn hơn bằng, v.v.
Vì vậy, hy vọng rằng chúng ta đã xử lý tốt
các toán tử cơ bản số học, logic, phép gán và quan hệ.
Được sử dụng khá nhiều nên bạn cần hiểu rõ về chúng. Hi vọng rằng nó không quá khó
hay khó hiểu.
Bạn sẽ sử dụng rất nhiều điều này trong
câu lệnh if và câu lệnh quyết định, vì vậy chúng tôi sẽ cung cấp thêm rất nhiều ví dụ về những điều này. Cảm ơn bạn.