Menu
CoddyTech

Toán tử modulo

Thuộc phần Kiến thức nền tảng trong hành trình Verilog của Coddy. Bài học 20 trên 90.

Một toán tử số học cơ bản khác là toán tử modulo (%). Toán tử này cho biết số dư sau phép chia.

Khi bạn chia một số cho một số khác, toán tử modulo cho bạn biết số còn dư là bao nhiêu.

Biểu thứcKết quảGiải thích
10 % 3110 ÷ 3 = 3, dư 1
15 % 4315 ÷ 4 = 3, dư 3
8 % 208 ÷ 2 = 4, dư 0

Ví dụ code

module modulo_demo;
  reg [7:0] result;
  
  initial begin
    result = 10 % 3;
    $display("10 %% 3 = %d", result);  // 1
    
    result = 15 % 4;
    $display("15 %% 4 = %d", result);  // 3
    
    result = 8 % 2;
    $display("8 %% 2 = %d", result);   // 0
    $finish;
  end
endmodule

Các cách dùng phổ biến

Kiểm tra xem một số là chẵn hay lẻ:

if (number % 2 == 0)
  $display("Even");
else
  $display("Odd");

Quay vòng bộ đếm (từ 0 đến 9, rồi quay lại 0):

count = (count + 1) % 10;

Lấy chữ số cuối cùng của một số:

last_digit = value % 10;   // 123 % 10 = 3
challenge icon

Thử thách

Tính số dư của từng biểu thức.

Cần làm gì:

  1. Tính 17 % 5 và lưu vào mod1
  2. Tính 22 % 7 và lưu vào mod2
  3. Tính 14 % 4 và lưu vào mod3

Tự làm thử

module modulo_challenge;
  reg [7:0] mod1, mod2, mod3;
  
  initial begin
    mod1 = ______;   // 17 % 5
    mod2 = ______;   // 22 % 7
    mod3 = ______;   // 14 % 4
    
    $display("17 %% 5 = %d", mod1);
    $display("22 %% 7 = %d", mod2);
    $display("14 %% 4 = %d", mod3);
    $finish;
  end
endmodule
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Verilog online