Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Introduction

الدرس 18 من 20 في دورة ألغاز رياضية على Coddy.

العدد الثنائي هو عدد يُعبر عنه في نظام العد الثنائي، وهو طريقة للتعبير الرياضي تستخدم رمزين فقط: عادةً "0" (صفر) و "1" (واحد). [من ويكيبيديا، الموسوعة الحرة]

الترميزات: 110=12، 210=102، 310=112، 410=1002 تعني أن الأعداد 1، 2، 3 و 4 في نظام العد العشري (نظام العد ذو الأساس 10) تساوي 1، 10، 11 و 100 في نظام العد الثنائي.

العد بالثنائي يشبه العد في أي نظام أرقام آخر. بدءاً من رقم واحد، يستمر العد عبر كل رمز، بترتيب تصاعدي.

 

لتحويل عدد صحيح من الأساس 10 إلى ما يعادله بالأساس 2 (ثنائي)، يتم تقسيم العدد على اثنين. الباقي هو البت الأقل أهمية (البت الموجود في أقصى اليمين). يتم تقسيم ناتج القسمة مرة أخرى على اثنين؛ ويصبح الباقي هو البت التالي في الأهمية. تتكرر هذه العملية حتى يتم الوصول إلى ناتج قسمة يساوي واحداً. تشكل سلسلة البواقي (بما في ذلك ناتج القسمة النهائي وهو واحد) القيمة الثنائية، حيث يجب أن يكون كل باقٍ إما صفراً أو واحداً عند القسمة على اثنين. على سبيل المثال، يتم التعبير عن 510 كـ 1012، لأن:

خمسة مقسومة على اثنين تساوي 2 والباقي واحد: 5:2 = 2(1). لذا فإن البت الأقل أهمية هو واحد. بعد ذلك، 2:2=1(0). لذا فإن البت التالي الأقل أهمية هو صفر، والبت الذي يليه هو واحد.

 

challenge icon

التحدي

سهل

اكتب دالة calcBinary تستقبل عدداً صحيحاً بنظام العد العشري (base-10)، وتُعيد ما يعادله بالنظام الثنائي (binary)، بتنسيق نصي (string).

حاول القيام بذلك دون استخدام الدوال المدمجة

جرّب بنفسك

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"

int main() {
    int n;
    if (scanf("%d", &n) != 1) n = 0;
    char* r = calcBinary(n);
    printf("%s\n", r);
    return 0;
}

جميع دروس ألغاز رياضية

9Binary numbers

Introduction