NOTE: "" (the empty string) is evaluated as a FALSE logical operand, so make sure that the empty string is not an acceptable value from my_function(). If you need to consider the empty string as an acceptable return value, you must go the classical "if" way. up. down. 2 1. Giới thiệu bài toán UCLN. Bài toán tìm ước chung lớn nhất C/C++ là một bài toán rất hay trong lập trình cơ bản, hầu hết các bạn mới học lập trình đều rất hứng thú với nó.. Bài toán có thể được nêu lên dưới nhiều dạng khác nhau, nhưng tóm tắt lại là: Tìm ước chung lớn nhất của hai số nguyên A, B. 3.4 Toán tử luận lý nhị phân Bitwise Logical Operators và biểu thức Ví dụ xét tốn hạng có giá trị là 12, toán tử luận lý nhị phân sẽ coi số 12 này như 1100. Toán tử luận lý nhị phân xem xét các toán hạng dưới dạng chuỗi bit chứ không là giá trị số thông thường. 5. Thay đổi thứ tự ưu tiên của các toán tử. Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc đơn (): Phần trong ngoặc đơn được thực hiện trước. Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong sẽ Toán tử logic OR trong C++. Toán tử logic OR hay còn gọi là toán tử logic tổng trong C + + sẽ trả về kêt quả true nếu một trong hai vế đúng, và false nếu cả hai vế đều sai . true || true = true true || false = true false || true = true false || false = false Các phần tử lôgic cơ bản trong IC Các hàm lôgic được thực hiện nhờ các hệ vật lý được gọi là các mạch lôgic, trong các mạch lôgic tổ hợp thì tín hiệu ở đầu ra chỉ phụ thuộc các tín hiệu ở đầu vào tại thời điểm đang xét. Có nhiều phương pháp vật lý (điện tử, cơ học, cơ điện, thuỷ lực…) để thực hiện các hàm bv9M. Trong toán học, một phép toán là một phép thực hiện tính toán từ một số lượng nào đó để tạo ra một kết quả cần tính toán. Chúng ta dễ dàng nhận thấy có một số phép toán mà ta hay sử dụng trong đời sống cộng, trừ, nhân, chia. Trong lập trình C cũng có những phép toán như vậy, ngoài ra ngôn ngữ C còn mở rộng thêm nhiều phép toán khác để thực hiện nhiều chức năng khác, chúng được gọi tắt là các toán tử. Ngôn ngữ C có nhiều toán tử cài sẵn và tôi sẽ cung cấp các loại toán tử căn bản sau Toán tử về số học Toán tử quan hệ Toán tử logic Toán tử gán Trong phạm vi căn bản chúng ta chỉ cần nắm được 4 toán tử trên là đã áp dụng được rất nhiều trong quá trình lập trình với C rồi, ngoài ra các bạn có thể tự tham khảo thêm đầy đủ các toán tử của C tại đây Operators in C and C++ tử về số học Toán tử về số học trong lập trình hay cũng chính là các phép toán mà ta vẫn thường sử dụng trong đời sống như Cộng, trừ, nhân, chia…… Ký hiệu Mô tả Ví dụ + Cộng các phần tử 1 + 6 = 7 – Trừ các phần tử 2 – 1 = 1 * Nhân các phẩn tử 5 * 7 = 35 / Chia các phần tử 10 / 2 = 5 % Chia lấy phần dư 10 / 8 = 2 kết quả chính là phần dư — Giảm một giá trị số nguyên xuống 1 đơn vị 5– = 5 – 1 = 4 ++ Tăng một giá trị số nguyên lên 1 đơn vị 9++ = 9 + 1 = 10 include int main{ // Khai bao 2 gia tri a, b co gia tri la 16, 8 va c, d gia tri 10, 8 int a = 16; int b = 8; int c = 10; int d = 8; // Thuc hien cac phep toan + - * / giua a va b int cong = a + b; int tru = a - b; int nhan = a * b; int chia = a / b; //Thuc hien cac phep toan % int chiaLayDu = c % d; a++; //Tang a len 1 don vi b-; // Giam b xuong 1 don vi // Hien thi ket qua printf"Cong = %d \n", cong; printf"Tru = %d \n", tru; printf"Nhan = %d \n", nhan; printf"Chia = %d \n", chia; printf"Chia lay phan du = %d \n", chiaLayDu; printf"a++ = %d \n", a; printf"b- = %d \n", b; return 0; } Cong = 24 Tru = 8 Nhan = 128 Chia = 2 Chia lay phan du = 2 a++ = 17 b– = 7 tử quan hệ Toán tử quan hệ hay có thể hiểu nôm na là phép so sánh giứa các đại lượng, các giá trị với nhau cho ra kết quả đúng hoặc sai. Ký hiệu Mô tả Ví dụ == So sánh giá trị có bằng nhau không 1 == 1 đúng, 2 == 1 sai != So sánh giá trị có không bằng nhau hay không 1 != 2 đúng, 1 != 1 sai > So sánh giá trị lớn hơn hay không 5 > 4 đúng, 5 > 6 sai = So sánh giá trị có lớn hơn hoặc bằng hay không 5 >= 4 đúng, 5 >= 5 đúng, 5 >= 6 sai int main{ // Khai bao 2 gia tri a, b co gia tri la 16, 8 int a = 16; int b = 8; // Hien thi ket qua so sanh ==,!=, >, =, b; printf"Nho hon %d \n", a = b; printf"Nho hon hoac bang %d \n", a int main{ // Khai bao 4 gia tri a, b, c, d co gia tri la 1,0,1,0 // Coi gia tri 1 la dung, gia tri 0 la sai int a = 1; int b = 0; int c = 1; int d = 0; printf"Gia tri cua a, b, c, d la %d %d %d %d \n", a,b,c,d; // Hien thi ket qua &&, , ! // Ket qua 1 la dung, 0 la sai printf"Menh de && giua a va b la %d \n", a && b; printf"Menh de && giua a va c la %d \n", a && c; printf"Menh de giua a va b la %d \n", a b; printf"Menh de giua b va d la %d \n", b d; printf"Phu dinh cua a, b, c, d la %d %d %d %d", !a,!b,!c,!d; return 0; } Gia tri cua a, b, c, d la 1 0 1 0 Menh de && giua a va b la 0 Menh de && giua a va c la 1 Menh de giua a va b la 1 Menh de giua b va d la 0 Phu dinh cua a, b, c, d la 0 1 0 1 tử gán Toán tử gán hay còn được hiểu là phép gán một giá trị cho một biến, hay gán một phép tính giá trị cho một biến…… Ký hiệu Mô tả Ví dụ = Gán cho giá trị bên trái bằng giá trị bên phải A = B += Cộng giá trị bên trái bằng một giá trị bên phải A += B tương đương A = A + B -= Trừ giá trị bên trái bằng một giá trị bên phải A -= B tương đương A = A – B *= Nhân giá trị bên trái bằng một giá trị bên phải A *= B tương đương A = A * B /= Chia giá trị bên trái bằng một giá trị bên phải A /= B tương đương A = A / B include int main{ // Khai bao 2 gia tri a, b co gia tri la 12,6 int a = 12; int b = 6; // Gan a = b a = b; printf"Gan a = b %d \n", a; // Khai bao 2 gia tri c, d co gia tri la 5,6 int c = 5; int d = 6; // Gan c += d hay con duoc hieu la c = c + d c += d; printf"c += d %d \n", c; // Khai bao 2 gia tri e, f co gia tri la 7,6 int e = 7; int f = 6; // Gan e -= f hay con duoc hieu la e = e - f e -= f; printf"e -= f %d \n", e; // Khai bao 2 gia tri g, h co gia tri la 8,6 int g = 8; int h = 6; // Gan g *= h hay con duoc hieu la g = g * h g *= h; printf"g *= h %d \n", g; // Khai bao 2 gia tri i, k co gia tri la 36,6 int i = 36; int k = 6; // Gan i /= k hay con duoc hieu la i = i / k i /= k; printf"i /= k %d \n", i; return 0; } Gan a = b 6 c += d 11 e -= f 1 g *= h 48 i /= k 6 Như các bạn đã biết, ký hiệu && và là toán tử logic AND và OR trong ngôn ngữ lập trình C/C++. Nhưng các bạn đã bao giờ để ý tới ký hiệu & và chưa? Đó cũng là ký hiệu của toán tử AND và OR nhưng sự khác nhau giữa các toán tử &&, và &, là gì? Có rất nhiều các bạn học lập trình C/C++ nhưng hay nhầm lẫn và không xác định được sự khác nhau giữa các toán tử &&, và &, . Vậy đâu là sự khác nhau, chúng ta hãy cùng xem ví dụ int ketQua; int a = 10, b = 14; ketQua = a && b; cout< So sánh lớn hơn 5 > 3 trả về 1 = Lớn hơn hoặc bằng 5 >= 3 trả về 1 int main { int a = 5, b = 5, c = 10; printf"%d == %d is %d \n", a, b, a == b; printf"%d == %d is %d \n", a, c, a == c; printf"%d > %d is %d \n", a, b, a > b; printf"%d > %d is %d \n", a, c, a > c; printf"%d = %d is %d \n", a, b, a >= b; printf"%d >= %d is %d \n", a, c, a >= c; printf"%d 5 is 0 5 > 10 is 0 5 = 5 is 1 5 >= 10 is 0 5 int main { int a = 5, b = 5, c = 10, result; result = a == b && c > b; printf"a == b && c > b is %d \n", result; result = a == b && c b is 1 a == b && c < b is 0 a == b c < b is 1 a != b c < b is 0 !a != b is 1 !a == b is 0 Trên là 5 loại toán tử được được sử dụng nhiều nhất khi làm việc với ngôn ngữ lập trình C. Bạn hãy thử chạy các ví dụ, thay giá trị cho các biến để hiểu rõ ý nghĩa của từng toán tử nhé. Sau khi học xong bài này là ta có thể học những kiến thức cao hơn đó chính là các lệnh rẻ nhánh và vòng lặp. Hẹn gặp lại bạn ở chương kế tiếp nhé. Bài viết đăng tại dẫn cách sử dụng toán tử logic trong C. Bạn sẽ học được các phép toán logic trong C được biểu diễn thông qua các toán tử logic trong C sau bài học toán tử logic trong CĐể thực hiện các phép toán logic trong C, chúng ta sử dụng các toán tử logic trong C được liệt kê trong bảng dưới đâyToán tửTênBiểu thứcÝ nghĩa&&ANDX && Ytrue nếu cả X và Y đều đúngORX Ytrue nếu ít nhất một trong hai vế X hoặc Y đúng!NOT! Xtrue nếu X sai và false nếu X đúngPhép toán logic trong C sẽ kiểm tra hai vế của toán tử logic là đúng hay sai và kết hợp chúng lại để đưa ra kết quả. Kết quả của phép toán logic trong C sẽ là kiểu boolean trong C với hai giá trị là true đúng hoặc false sai.Toán tử logic AND trong CToán tử logic AND hay còn gọi là toán tử logic tích trong C sẽ trả về kêt quả true nếu cả hai vế đều đúng và ngược lại là false nếu một trong hai vế là && true = truetrue && false = falsefalse && true = falsefalse && false = falseVề quy trình xử lý, toán tử logic AND trong C sẽ kiểm tra biểu thức X bên vế trái trước. Nếu X true thì trả về giá trị của Y. Nếu X false thì trả về giá trị của dụ cụ thể về sử dụng toán tử logic AND trong C như sau2 10 && 2 10 && num 10 && num > 40Toán tử logic OR trong CToán tử logic OR hay còn gọi là toán tử logic tổng trong C sẽ trả về kêt quả true nếu một trong hai vế đúng, và false nếu cả hai vế đều true = truetrue false = truefalse true = truefalse false = falseVề quy trình xử lý, toán tử logic OR trong C sẽ ngược lại so với toán tử logic AND. Toán tử logic OR sẽ kiểm tra biểu thức X bên vế trái trước. Nếu X true thì trả về giá trị của X. Nếu X false thì trả về giá trị của dụ cụ thể về sử dụng toán tử logic OR trong C như sau2 402 > 10 2 > 40Bạn cũng có thể sử dụng toán tử logic AND trong C với biến như saunum = 20num > 10 num 10 num > 40num 40Toán tử logic NOT trong CToán tử logic NOT hay còn gọi là toán tử logic phủ đinh trong C sẽ trả về kêt quả true nếu một trong hai vế đúng, và false nếu cả hai vế đều sai.!true = false!false = trueVí dụ cụ thể về sử dụng toán tử logic NOT trong C như sau!2 40!2 > 40Bạn cũng có thể sử dụng toán tử logic NOT trong C với biến như saunum = 20!num 10Thứ tự ưu tiên toán tử logic trong CTrong trường hợp có nhiều toán tử logic trong C cùng tồn tại trong một biểu thức thì thứ tự ưu tiên xử lý của chúng như sauNOT > AND > ORNói cách khác, toán tử NOT có mức độ ưu tiên thực hiện cao nhất trong các toán tử logic dụ cụ thể thì ở dưới đây, toán tử AND && sẽ được đánh giá trước so với toán tử OR .4>3 22 Để thay đổi thứ tự ưu tiên các toán tử này trong biểu thức, chúng ta sử dụng tới cặp dấu ngoặc như sau4>3 22Lại nữa, do các toán tử logic có thứ tự ưu tiên thấp hơn so với các toán tử so sánh như , nên bạn không cần sử dụng tới các dấu ngoặc khi viết chúng cùng trong một biểu 2!10 == 10Ứng dụng của toán tử logic trong CToán tử logic trong C thường được sử dụng trong các biểu thức điều kiện trong các lệnh điều kiện if hoặc là trong vòng lặp. Trong các bài tiếp theo về các chuyên đề này, chúng ta sẽ gặp chúng nhiều sau đây là một số ví dụ cụ thể về sử dụng toán tử trong C để các bạn tham khảo dụ 1 Sử dụng toán tử logic trong lệnh điều kiện ifinclude int mainvoid{ int old = 17; if old > 15 && old 11 && old int mainvoid{ int num = 3; for int i = 0; i >08. lệnh điều kiện trong cBài sauIf trong CBài tiếpToán tử so sánh trong C và các phép so sánh chuỗi, số Trong bài này chúng ta sẽ tìm hiểu một số toán tử thường gặp trong C như Toán tử số học, toán tử quan hệ, toán tử logic, và toán tử gán. Nói về toán tử thì hầu như ngôn ngữ lập trình nào cũng có, và ý nghĩa sử dụng cũng giống nhau. Chỉ có điều mỗi ngôn ngữ sẽ có một cú pháp riêng nên có thể cách biểu diễn sẽ khác. Tuy nhiên, hầu hết các ngôn ngữ lập trình hiện nay đều có cú pháp sử dụng các toán tử giống nhau lên đến 90%. 1. Toán tử số học trong C Một toán tử số học thực hiện các phép toán như cộng, trừ, nhân, chia, trên các giá trị số hằng số và biến. Toán tử Ý nghĩa + Phép cộng – Phép trừ * Phép nhân / Phép chia % Phép chia lấy dư Những toán tử này tương đối dễ, chỉ có toán từ % là đặc biệt, nó sẽ lấy kết quả là phần dư của phép chia. Ví dụ 4 % 3 = 1 tại vì 4 chia cho 3 sẽ dư 1. Xem ví dụ dưới đây // Working of arithmetic operators include int main { int a = 9,b = 4, c; c = a+b; printf"a+b = %d \n",c; c = a-b; printf"a-b = %d \n",c; c = a*b; printf"a*b = %d \n",c; c = a/b; printf"a/b = %d \n",c; c = a%b; printf"Chia lay du = %d \n",c; return 0; } Kết quả a+b = 13 a-b = 5 a*b = 36 a/b = 2 Chia lay du =1 2. Toán tử tăng giảm 1 đơn vị trong C Trong C cho phép bạn tăng giá trị của biến lên 1 bằng phép ++, giảm xuống 1 đơn vị bằng phép -. Xem ví dụ sau để hiểu rõ hơn nhé. include int main { int a = 10, b = 100; float c = d = printf"++a = %d \n", ++a; printf"-b = %d \n", -b; printf"++c = %f \n", ++c; printf"-d = %f \n", -d; return 0; } Kết quả ++a = 11 -b = 99 ++c = ++d = Ngoài ra bạn có thể đặt toán tử này phía sau biến cũng được, tức là a- hoặc a++. Sự khác nhau giữa hai cách đặt này là như sau Nếu bạn đặt toán tử ở phía trước thì trình biên dịch sẽ ưu tiên chạy toán tử này trước, tức là giá trị sẽ tăng / giảm trước khi thực hiện các phép khác. Nếu đặt phía sau thì nó sẽ tính các phép toán khác rồi mới tăng / giảm cho biến. Ví dụ int a = 12; int b; b = ++a; // b = 13 b = a++; // b = 12 3. Toán tử gán trong C Toán tử gán dùng để gán / thay đổi giá trị cho biến. Trong C có tổng cộng 6 toán tử gán thường sử dụng nhất, đó là Toán tử Ví dụ Tương đương = a = b a = b += a += b a = a+b -= a -= b a = a-b *= a *= b a = a*b /= a /= b a = a/b %= a %= b a = a%b Khi bạn sử dụng các toán tử số học kèm với toán tử bằng thì đồng nghĩa với việc ghi tắt ở cột tương đương trong bảng trên. Ví dụ include int main { int a = 5, c; c = a; // c is 5 printf"c = %d\n", c; c += a; // c is 10 printf"c = %d\n", c; c -= a; // c is 5 printf"c = %d\n", c; c *= a; // c is 25 printf"c = %d\n", c; c /= a; // c is 5 printf"c = %d\n", c; c %= a; // c = 0 printf"c = %d\n", c; return 0; } Kết quả c = 5 c = 10 c = 5 c = 25 c = 5 c = 0 Đây là những toán tử được sử dụng rất thường xuyên trong lập trình C. 4. Toán tử quan hệ trong C Toán tử quan hệ dùng để trả về mối quan hệ giữa hai biểu thức hoặc hai toán hạng. Kết quả trả về của nó là TRUE hoặc FALSE. TRUE đồng nghĩa với 1 FALSE đồng nghĩa với 0 Đây là toán tử khá quan trọng bởi nó được dùng để kiểm tra tính logic của bài toán, kể cả trong thực tế hay lúc học đều đụng đến nó khá nhiều. Sau đây là bảng danh sách các toán tử quan hệ trong ngôn ngữ C. Toán tử Ý nghĩa Ví dụ == So sánh bằng 5 == 3 trả về 0 > So sánh lớn hơn 5 > 3 trả về 1 = Lớn hơn hoặc bằng 5 >= 3 trả về 1 int main { int a = 5, b = 5, c = 10; printf"%d == %d is %d \n", a, b, a == b; printf"%d == %d is %d \n", a, c, a == c; printf"%d > %d is %d \n", a, b, a > b; printf"%d > %d is %d \n", a, c, a > c; printf"%d = %d is %d \n", a, b, a >= b; printf"%d >= %d is %d \n", a, c, a >= c; printf"%d 5 is 0 5 > 10 is 0 5 = 5 is 1 5 >= 10 is 0 5 int main { int a = 5, b = 5, c = 10, result; result = a == b && c > b; printf"a == b && c > b is %d \n", result; result = a == b && c b is 1 a == b && c < b is 0 a == b c < b is 1 a != b c < b is 0 !a != b is 1 !a == b is 0 Trên là 5 loại toán tử được được sử dụng nhiều nhất khi làm việc với ngôn ngữ lập trình C. Bạn hãy thử chạy các ví dụ, thay giá trị cho các biến để hiểu rõ ý nghĩa của từng toán tử nhé. Sau khi học xong bài này là ta có thể học những kiến thức cao hơn đó chính là các lệnh rẻ nhánh và vòng lặp. Hẹn gặp lại bạn ở chương kế tiếp nhé.

toán tử logic trong c