8 mavzu: Murakkab saralash algoritmlari. Amaliy dasturlash Reja
Katta sonlar bilan ishlash sinflari
Download 231.37 Kb.
|
8-maruza (2)
Katta sonlar bilan ishlash sinflari. Kriptografiya yoki IPv6 manzillari bilan ishlashda ko‘pincha juda ko‘p sonli arifmetikaga ehtiyoj tug‘iladi. C/C++ kutubxonalari ikkita katta sonni ko‘paytirish yana bir funksiyada qanday bajarilishini ko‘rib chiqamiz.
OpenSSL katta sonlar bilan ishlash uchun ajralmas mexanizmi, funksiyalari bor. Agar kutubxona bo‘lsa, unday quyidagicha foydalanish mumkin:
Bu C++dan ko‘proq C kodidir. Bu istisnolar bilan bir muhitda u bilan ishlash uchun xavfli va xotira oqib ketishi mumkin. Gcrypt. Libgcrypt kutubxonasi GnuPG loyihasi asosida yaratilgan va shifrlash bilan ishlash uchun asosiy funksiyalarni, shu jumladan katta sonlar bilan taʻminlaydi. Bu kutubxonadan quyidagicha foydalanish mumkin:
Muammolar hali ham bir xil - C kodi, unda resurslarni o‘zimiz yaratishimiz mumkin. GMP. Avvalgi ikki kutubxona kriptografiyada foydalanish uchun ishlatiladi. GMP faqat raqamlar bilan ishlaydigan maxsus kutubxona. Uning yordamida quyidagicha dastur tuzish mumkin:
Boost.Multiprecision. Bu kutubxona katta sonlarning o‘zi bilan arifmetikani amalga oshirmaydi, faqat ular bilan ishlash uchun qulay, C++ interfeysini taʻminlaydi, uchinchi tomon kutubxonalaridan hisob-kitoblar uchun backend sifatida foydalanadi. Interfeys qanchalik qulayligi quyidagi dastur fragmentida ko‘rsatilgan:
Bunday tez-tez uchraydigan masalalar uchun kutubxonalardan foydalanishda xotira va bajarish juda mushkul. C++ standartlashtirish bo‘yicha Milliy ishchi guruhdan rus ishlab chiquvchilari bir xil ishonishadi, shuning uchun standart kutubxonaga mustaqil ravishda wide integer tiplarini kiritish taklifi bilan chiqqan. Ulardan dasturda quyidagicha foydalanish mumkin:
Megabayt xotira oladigan raqamlar bilan ishlashni istaysizmi? Hech qanday muammo yo‘q, 100! ni hisoblash dasturini keltiramiz:
Download 231.37 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling