بایگانی‌های دسته‌بندی: زبان سی

برنامه‌نویسی GUI در Qt

در این لینک دربارهٔ کتابخانهٔ روشن و نحوهٔ فراخوانی توابع موجود در آن توضیحاتی داده شد. اکنون می‌خواهیم با برنامه‌نویسی GUI در محیط Qt (کیوت)، از این کتابخانه بهره ببریم. با قرار دادن سورس‌کدهای چند نرم‌افزار کاربردی، در مورد GUI Programming نکاتی ارائه شده است. با بررسی این سورس‌کدها می‌توانید نکات کاربردی‌ای را کسب کنید. […]

کتابخانهٔ روشن (roshanlib) نسخهٔ 1.1.3.9

نسخه 1.1.3.9 کتابخانهٔ روشن دارای توابع جدیدی در حوزهٔ ریاضی است. نسخهٔ 1.0.0.0 این کتابخانه را می‌توانید از این لینک و نسخهٔ 1.1.2.4 را می‌توانید از این لینک دانلود کنید. کتابخانهٔ نسخهٔ 1.1.3.9 دارای همان توابعی است که به زبان C در نسخه‌های قبلی نوشته شده بود؛ با این تفاوت که: ۱) توابع درون large_math_c […]

یافتن یک توالی دلخواه در خلاصه پیام MD5 و خانوادهٔ SHA

تابع درهم‌ساز رمزنگارانه (به انگلیسی: Cryptographic Hash Function) (CHF)، تابع درهم‌سازی است که مناسب برای رمزنویسی است. در واقع یک الگوریتم ریاضی است که داده‌هایی با اندازه اختیاری یا متغیر (که اغلب «پیام» اطلاق می‌شوند) را دریافت می‌کند و به یک رشتهٔ بیتی با اندازهٔ ثابت (مقدار درهم، هش، «اثر انگشت» یا «خلاصه پیام») تبدیل […]

نکاتی دربارهٔ اپراتورهای بیتی (Bitwise Operators)

اپراتور XOR ۱. از اپراتور XOR می‌توان برای معکوس کردن یک یا چند بیت مشخص استفاده کرد. بعنوان مثال:الف) می‌خواهیم بیت‌های دوم، پنجم و هفتم عدد 11101100110 (1894) را معکوس کنیم. باید این عدد را با 1010010 (82)، XOR کنیم. عدد حاصل برابر 11100110100 (1844) می‌شود. بنابراین هرگاه خواستید بیت‌های دوم، پنجم و هفتم یک […]

برنامه امضاء روشن به زبان C

بِسمِ اللهِ الرَّحمنِ الرَّحِیمِ‏ همانطور که قبلا در این صفحه و این صفحه دربارهٔ برنامه‌های امضاء گفته شد، این برنامه‌ها بصورت جمع‌وجور و معمولا رمزآلود نوشته می‌شوند. برنامه امضا‌ء زیر را خودم مدت‌ها پیش نوشتم، که بعد از اجرا ترجمهٔ «بِسمِ اللهِ الرَّحمنِ الرَّحِیمِ‏» یعنی “In the name of Allah, the Beneficent, the Merciful” را […]

ضرب دو عدد صحیح با استفاده از اپراتورهای بیتی

روش‌های مختلفی برای ضرب اعداد صحیح وجود دارد. یک روش جالب الگوریتم دهقان روسی (Russian Peasant Algorithm) است. این الگوریتم بدین صورت است که: حاصل ضرب n1 × n2 برابر می‌شود با:اگر n2 یک عدد فرد باشد، آنگاه n1 را یادداشت می‌کنیم و اگر زوج باشد، از آن صرف نظر می‌کنیم. سپس n1 را دو […]

پیش‌پردازندهٔ ماکرو (macro)

به خطوطی که با علامت هش (hash sign) (#) شروع می‌شوند، پیش‌پردازنده (Preprocessor) می‌گویند. این خطوط دستورات برنامه نیستند و دستورالعمل پیش‌پردازنده هستند. پیش‌پردازنده قبل از شروع ترجمه (Compilation) کد را بررسی می‌کند و اقدامات لازم را انجام می‌دهد. پیش‌پردازنده‌ها تنها در یک خط نوشته می‌شوند و به محض اینکه خط جدیدی شروع می‌شود، دستورات […]

جمع و تفریق دو عدد صحیح با استفاده از اپراتورهای بیتی

کد زیر جمع بین دو عدد صحیح را با استفاده از اپراتورهای بیتی بدست می‌آورد. به این کد دقت کنید: Output: 9 در کد بالا اپراتور XOR جمع بین دو بیت را به ما می‌دهد. هدف از XOR، انجام کارهای زیر است: با استفاده از اپراتور AND می‌توان بیت Carry را بدست آورد. در واقع […]

نوشتن تابع معکوس‌کننده یک رشته در زبان C با استفاده از XOR

به کد زیر توجه کنید: تابع strReverse را بصورت خلاصه‌تر هم می‌توان نوشت: حلقه‌ی درون این تابع با استفاده از XOR باعث برعکس شدن رشته می‌شود. این حلقه حداکثر به‌اندازهٔ نصف طول رشتهٔ ورودی اجرا می‌شود. مقدار بازگشتی هم برابر اشاره‌گر به رشتهٔ هدف است. در این صفحه نیز روش دیگری برای معکوس کردن یک […]

IDEهای مناسب برای برنامه‌نویسی

گفتن اینکه کدام IDE بهترین است، کار منطقی‌ای نیست؛ چون هر کس با توجه به نیاز خودش IDE مورد نظر را انتخاب می‌کند. این انتخاب کاملا شخصی است. معمولا افراد معیارهای مختلفی برای این انتخاب دارند؛ شاید به جرئت بتوان گفت که مهم‌ترین معیار، اولین IDE است که برنامه‌نویس از آن استفاده کرده و با […]