# Các số nguyên trong SystemC
SystemC cung cấp các phiên bản bù hai của hai kiểu số nguyên cơ bản, bao gồm cả số nguyên có dấu và không dấu. Hai kiểu số nguyên này là kiểu số nguyên có độ chính xác giới hạn, với độ dài tối đa là 64-bit, và kiểu số nguyên có độ chính xác hữu hạn, có thể dài hơn nhiều. Các kiểu số nguyên này cung cấp các chức năng không có sẵn trong các kiểu số nguyên gốc của C++. Các kiểu dữ liệu gốc của C++ có độ rộng phụ thuộc vào bộ xử lý và trình biên dịch của máy chủ. Các kiểu dữ liệu gốc được tối ưu hóa cho tập lệnh của bộ xử lý máy chủ và rất hiệu quả. Các kiểu dữ liệu này thường có độ dài 8, 16, 32 hoặc 64 bit. Các kiểu số nguyên trong SystemC được định dạng và có thể có độ rộng dữ liệu từ 1 đến hàng trăm bit. Ngoài độ rộng có thể cấu hình, các kiểu số nguyên trong SystemC còn cho phép lựa chọn bit, lựa chọn phạm vi bit và các thao tác nối chuỗi.
vd: Bus dữ liệu của SoC lên đến 512bit vậy làm thế nào để bạn dùng C++ thuần để miêu tả kiểu dữ liệu 512bit -> 64byte. SC cung cấp các class đễ thực hiện điều này.
# 1. sc_int and sc_uint
Hầu hết các phần cứng cần xác định độ rộng lưu trữ thực tế ở một mức độ tinh chỉnh nào đó. Khi xử lý số học, các kiểu dữ liệu số tích hợp sẵn sc_int
| sc_int
# 2. sc_bigint and sc_biguint
Một số phần cứng có thể lớn hơn các số được hỗ trợ bởi các kiểu dữ liệu gốc của C++.
SystemC cung cấp các kiểu dữ liệu sc_bigint
Cách khai báo:
| sc_bigint
| // số có dấu | sc_int<5> value=3; // 5 bit | // biển diễn số không dấu | sc_uint<23> value(4000); // 23 bit | sc_biguint<90> value; // 90 bit