Hiểu cơ bản SystemC là một thư viện của C++. Vì vậy SystemC có thể sữ dụng tất cả các kiểu dữ liệu mà C++ hỗ trợ.
# 1. Biểu diễn chuỗi ký tự SystemC
Các chuỗi ký tự trong SystemC có thể được sử dụng để gán giá trị cho bất kỳ kiểu dữ liệu nào của SystemC. vd: const sc_ufixed<19,3> PI = "3.141592654";
Các chuỗi ký tự trong SystemC bao gồm một tiền tố, một giá trị và một ký tự dấu tùy chọn “+” hoặc “-”. Ký tự dấu tùy chọn có thể đứng trước tiền tố cho các dạng thập phân và dạng dấu và giá trị, nhưng không được phép với các dạng không dấu, nhị phân, bát phân và thập lục phân (unsigned, binary, octal, và hexadecimal.). Các giá trị âm cho các dạng nhị phân, bát phân và thập lục phân có thể được biểu diễn bằng cách sử dụng biểu diễn bù hai. Tham khảo chi tiết về dạng bù hai tại: https://vi.wikipedia.org/wiki/Bù_2 (opens new window)
Các tiền tố được hỗ trợ được liệt kê trong bảng sau:
Câu lệnh :
`` string to_string(sc_numrep rep, bool wprefix);
Trong đó: sc_numrep
| SC_DEC : Decimal
| SC_BIN : Binary
| SC_HEX : Hex
| SC_OCT : Octal
| SC_BIN_US : Binary unsigned
| SC_BIN_SM : Binary signed magnitude
| SC_OCT_US : Octal unsigned
| SC_HEX_US : Hex unsigned
| SC_HEX_SM : Hex signed magnitude
| SC_CSD : Canonical signed digit
| SC_OCT_SM : Octal signed magnitude
wprefix:
| 0d : Decimal
| 0b : Binary
| 0bus : Binary unsigned
| 0bsm : Binary signed magnitude
| 0o : Octal
| 0ous : Octal unsigned
| 0osm : Octal signed magnitude
| 0x : Hex
| 0xus : Hex unsigned
| 0xsm : Hex signed magnitude
| 0csd : Canonical signed digit
# 2 String Input and Output
Các kiểu dữ liệu trong System hỗ trợ hàm ``to_string giúp xuất ra giá trị như ví dụ sau:
sc_int<5> value_i; // 5-bit signed integer value_i = "-0d12"; // assign -12
cout << " value_i=" << value_i; cout << " SC_BIN=" << value_i.to_string(SC_BIN);
` cout << " SC_HEX=" << value_i.to_string(SC_HEX);
` value_i=-12 SC_BIN=0b10010 SC_HEX=0xf2