در این برنامه حلقه فور متغیر جی برای شمارش اعداد است و حلقه داخلیش بیت های عدد j رو بررسی می کنه اگه بیتی یک بود (if(m%2==1)) عضو متناظر با اون بیت رو چاپ می کنه
دقیقا مساله من هم همین جاست که چرا از باقیمانده تقسیم برای پیدا کردن اندیس آرایه استفاده می کنه.

منطق ریاضیاتی اون چیه؟ آیا همون تبدیل عدد decimal به binary هست؟ فکر کنم همین طور باشه!