Cara Melaksanakan Big Int dalam C
Pengenalan
Bekerja dengan nombor yang lebih besar daripada jenis data terbina dalam long int memerlukan pelaksanaan tersuai yang dipanggil big int. Berikut ialah pendekatan umum untuk mereka bentuk kelas int besar dalam C .
Struktur Data
Simpan integer sebagai vektor nombor yang lebih kecil, biasanya digit tunggal atau nilai asas kecil . Ini membenarkan integer panjang sewenang-wenangnya.
template<class BaseType> class BigInt { typedef typename BaseType BT; protected: std::vector<BaseType> value_; };
Operasi Aritmetik
Tambahan:
Laksanakan operator = menggunakan binari prinsip penambahan. Gelung melalui elemen, melakukan penambahan dan pengendalian membawa seperti yang diperlukan.
template<class BaseType> BigInt<BaseType>& BigInt<BaseType>::operator+=(BigInt<BaseType> const& operand) { BT count, carry = 0; for (count = 0; count < std::max(value_.size(), operand.value_.size()); count++) { //... (carry handling omitted for brevity) } return *this; }
Operasi Lain (Pendaraban, Pembahagian, dll.)
Operasi aritmetik lain memanfaatkan yang dilaksanakan = dan - pengendali. Pertimbangkan untuk menggunakan algoritma sedia ada untuk pelaksanaan yang dioptimumkan.
Pertimbangan Lain
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kelas Integer Besar dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!