Mobo
  • Home
  • Hướng Dẫn
  • Trend 24h
  • Tử Vi 24h
No Result
View All Result
Mobo
  • Home
  • Hướng Dẫn
  • Trend 24h
  • Tử Vi 24h
No Result
View All Result
Mobo
No Result
View All Result
topforexviet.com

Phép toán thao tác bit trong C (Bitwise operation)

by admin
22 Tháng 9, 2022
in Trend 24h
0
Share on FacebookShare on Twitter

Contents [hide]

  • 1 BẠN QUAN TÂM
  • 2 Vai Trò Của Nhà Quản Trị Trong Thời Đại Số
  • 3 Sức Mạnh của Hình Ảnh Kết Luận
  • 4 Các phép toán thao tác bit cơ bản
    • 4.1 Phép toán AND (&)
    • 4.2 Phép toán OR (|)
    • 4.3 Phép toán XOR (^)
    • 4.4 Phép toán NOT (~)
  • 5 Toán tử dịch bit
    • 5.1 Dịch phải (>>)
    • 5.2 Dịch trái bit (<<)
  • 6 Bài tập phép toán thao tác bit
    • 6.1 Kiểm tra tính chẵn lẻ của một số
    • 6.2 Tìm số xuất hiện 1 lần duy nhất trong mảng

BẠN QUAN TÂM

Xu hướng quản trị 24h qua: Lãnh đạo linh hoạt và thích ứng

Vai Trò Của Nhà Quản Trị Trong Thời Đại Số

27 Tháng 2, 2025
Hình ảnh kết luận trên mạng xã hội

Sức Mạnh của Hình Ảnh Kết Luận

27 Tháng 2, 2025

Nội dung bài viết

  • Các phép toán thao tác bit cơ bản
  • Phép toán AND (&)
  • Phép toán OR (|)
  • Phép toán XOR (^)
  • Phép toán NOT (~)
  • Toán tử dịch bit
  • Dịch phải (>>)
  • Dịch trái bit (<<)
  • Bài tập phép toán thao tác bit
  • Kiểm tra tính chẵn lẻ của một số
  • Tìm số xuất hiện 1 lần duy nhất trong mảng

Trong bài viết này, chúng ta sẽ tìm hiểu về các phép toán thao tác bit (bitwise operation). Trong đơn vị logic số học (nằm trong CPU), các phép toán như: cộng, trừ, nhân và chia được thực hiện ở cấp độ bit. Để thực hiện các phép toán cấp độ bit trong C++, các toán tử bitwise được sử dụng.

Một bức hình biểu diễn bởi các con số 0 và 1 trích từ bộ phim nổi tiếng Ma trận (The Matrix)

Trước khi đi vào các bài tập ví dụ, chúng ta hãy ôn lại một chút kiến thức về các phép toán logic, bao gồm 6 phép toán cơ bản:

& AND | OR ^ XOR ~ NOT << Dịch bit sang trái >> Dịch bit sang phải

Các phép toán thao tác bit cơ bản

Phép toán AND (&)

Kết quả của phép AND sẽ là 1 nếu cả 2 toán hạng là 1. Nếu một trong hai toán hạng là 0 thì kết quả sẽ là 0, sau đây là bảng chân trị của phép AND:

A B A & B 0 0 0 1 0 0 0 1 0 1 1 1

Ví dụ phép AND giữa 2 số thập phân là 5 và 3:

Minh họa với C++:

Kết quả:

Phép toán OR (|)

Kết quá của phép OR sẽ là 1 nếu một trong hai toán hạng là 1. Trong C++, phép OR được ký hiệu là |. Bảng chân trị của phép OR

Giờ Tý là mấy giờ? Cách tính 5 canh trong 1 ngày – Tiệm rửa xe uy tín

A B A | B 0 0 0 1 0 1 0 1 1 1 1 1

Ví dụ phép OR của 12 và 25

Minh họa với C++:

Kết quả:

Phép toán XOR (^)

Kết quả của phép XOR là 1 nếu 2 toán hạng có giá trị khác nhau.

A B A ^ B 0 0 0 1 0 1 0 1 1 1 1 0

Ví dụ về Câu Hỏi Nghiên Cứu là Gì?

Minh họa với C++:

Kết quả:

Ngoài ra, có 2 tính chất đặc biệt với phép XOR:
  • A ^ A = 0 (1 toán hạng XOR với chính nó sẽ bằng 0)
  • A ^ 0 = A (Bất kỳ toán hạng nào XOR với 0 đều bằng chính nó)

Phép toán NOT (~)

Toán tử NOT là toán tử 1 ngôi. Nó thay đổi toán hạng từ 0 sang 1 và ngược lại

A ~A 0 1 1 0

Minh họa với C++:

Kết quả:

Chúng ta thấy kết quả của ~30 là -31 thay vì 225, tại sao lại như vậy?

Sức Mạnh của Hình Ảnh Kết Luận

Để hiểu được điều này chúng ta sẽ nói qua một chút về bù 2 (2’s complement):

Bù 2 của một số sẽ bằng bù 1 (~) của số đó cộng thêm 1

Đối với bất kỳ số nguyên n, thì ~n sẽ bằng -(n+1). Vì ~n được biểu diễn dưới dạng bù 2 và bù 2 của ~n sẽ là -(~(~n)+1)=-(n+1)

Suy ra kết quả ở đầy sẽ là -31 thay vì 225 vì bù 1 của 30 (~30) là 225, bù 2 của 225 là -31.

Toán tử dịch bit

Dịch phải (>>)

Toán tử dịch phải bit sẽ dịch tất cả các bit sang phải bởi một số nhất định

“Kỷ Niệm” trong Tiếng Anh là gì: Định Nghĩa, Ví Dụ Anh Việt

Dịch trái bit (<<)

Toán tử dịch trái bit sẽ dịch tất cả các bit sang trái bởi một số nhất định

Minh họa với C++:

Kết quả:

Bài tập phép toán thao tác bit

Bạn có thể thực hành các bài tập liên quan tới phép toán thao tác bit (bitwise) trên nền tảng Luyện Code tại đây. Sau đây sẽ là 2 bài toán kinh điển có sự hỗ trợ của phép toán thao tác bit đi kèm hướng dẫn và lời giải tham khảo sử dụng C++.

Kiểm tra tính chẵn lẻ của một số

Đề bài: Cho 1 số nguyên n, kiểm tra xem n là chẵn hay lẻ?

Chúng ta sẽ thấy 1 điều rằng những số chẵn ở dạng nhị phân thì bit ngoài cùng bên phải sẽ luôn là bit 0, đối với số lẻ thì bit ngoài cùng bên phải sẽ luôn là 1. Dựa vào điều này ta có thể dễ dàng biết được tính chẵn lẻ bằng cách lấy số đó AND(&) với 1 nếu kết quả bằng 1 thì đó là số lẻ, ngược lại nếu bằng 0 sẽ là số chẵn. Ví dụ:

Lời giải tham khảo với C++:

Tìm số xuất hiện 1 lần duy nhất trong mảng

Đề bài: Cho 1 mảng các số nguyên, mỗi số trong mảng xuất hiện 2 lần, ngoại trừ 1 số xuất hiện đúng 1 lần, hãy tìm số xuất hiện đúng 1 lần đó?

Đối với bài toán này chúng ta sẽ có khá nhiều cách giải, có thể sử dụng hash table, độ phức tạp thời gian sẽ là O(n) nhưng lại yêu cầu nhiều bộ nhớ hơn. Vậy ở đây chúng ta sẽ sử dụng các phép toán bit với độ phức tạp thời gian là O(n) và không gian là O(1).

Như mình đã đề cập ở phần XOR(^), phép XOR có 2 tính chất đặc biệt, và ý tưởng cho bài toán này là chúng ta chỉ cần XOR hết tất cả các phần tử trong mảng lại với nhau, 2 phần tử trùng nhau sẽ trả về về 0 và còn lại phần tử xuất hiện đúng 1 lần sẽ XOR với 0 và trả về phần tử đó.

Lời giải tham khảo với C++:

Kết quả:

Trên đây là nội dung bài viết về các phép toán thao tác bit đi kèm các ví dụ sử dụng ngôn ngữ C++. Nếu bạn đọc có nhận xét hoặc thắc mắc có thể để lại bình luận phía cuối bài viết hoặc đặt câu hỏi tại nhóm Lập Trình Không Khó.

BÀI LIÊN QUAN

Xu hướng quản trị 24h qua: Lãnh đạo linh hoạt và thích ứng

Vai Trò Của Nhà Quản Trị Trong Thời Đại Số

by admin
27 Tháng 2, 2025
0

Vai trò của nhà quản trị đang thay đổi chóng mặt trong thời đại số. Không còn chỉ đơn thuần...

Hình ảnh kết luận trên mạng xã hội

Sức Mạnh của Hình Ảnh Kết Luận

by admin
27 Tháng 2, 2025
0

Hình ảnh kết luận đóng vai trò then chốt trong việc truyền tải thông điệp và để lại ấn tượng...

Giá trị P trong Nghiên cứu Khoa học

Cách Tính P trong Nghiên cứu Khoa học

by admin
26 Tháng 2, 2025
0

Cách tính p trong nghiên cứu khoa học đóng vai trò then chốt trong việc xác định ý nghĩa thống...

Ví dụ Câu Hỏi Nghiên Cứu Khoa Học

Ví dụ về Câu Hỏi Nghiên Cứu là Gì?

by admin
25 Tháng 2, 2025
0

Ví dụ về câu hỏi nghiên cứu là gì? Đó là câu hỏi mà rất nhiều người mới bắt đầu...

Bài tiếp theo

Giáo dục giới tính tuổi teen (Phần 3): Quan hệ tình dục có như lời đồn?

Facebook Twitter Instagram

VỀ CHÚNG TÔI

CHÍNH SÁCH

  • Giới thiệu
  • Điều khoản
  • Chính sách bảo mật

BÀI MỚI NHẤT

  • Tử Vi Em Bé Sinh Năm 2023: Giải Mã Vận Mệnh Quý Mão
  • Khám Phá Bí Mật Tử Vi Hoàng Nguyễn
  • Tử Vi Bính Ngọ Năm 2025: Chi Tiết Vận Hạn
  • Ý Nghĩa Sao Tử Vi Ở Các Cung
  • Xem Tử Vi Ngày 3/3/2025: Dự Đoán Vận May Của Bạn

© 2022 MOBO.VN

sancrypto.net
No Result
View All Result
  • Landing Page
  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2022 MOBO.VN

apkfrlegends.com igram.dev