السلام عليكم ورحمة الله تعالى وبركاته
الهدف:
إزاحة شبح الأعداد العشرية
فهم المعنى الحقيقي everything is just a sequence of bits
القدرة على التعامل مبائرة مع الذاكرة
الموضوع:
سيكون التحدي مقسما الى جزئين، جزء أول بسيط سأضعه الآن، وجزء صعب، سأضعه عند إنتهاء مدة الجزء الأول.
المتطلبات:
1 كتابة برنامج يطلب من المستخدم إدخال رقم عشري، أو فقط إستخدم hardcoded number لامشكلة ;)
2 تقسيم الرقم العشري على شكل حقول بنية، ثم طباعة كل جزء على شكل بتات، مع وضع تعليق بسيط وفي الصميم، لكل حقل في الـ output طبعاً
3 أثبت أنك تعي جيدا ما تقوم به، وذلك عن طريق تعديل الذاكرة مبائرة بتا بتاً، بإضافة 2.013- الى العدد الذي إخترته :D ،
الغش غير مقبول نهائياً :angry:
حسناً، لكي أشرح بالضبط موضوع التحدي قمت بإعداد مثال خاطئ تماماً يشرح المتطلبات،
/*
This is a fake solution,
just to tel what the idea is
author: zirek99i
*/
#include <blabla.h>
// pure c
#define read(msg, var) do somthing ... or use the usual
#pragma pack ?
typedef struct _FLOAT_MEMORY
{
unsigned int field_1:7
unsigned int field_2:77
unsigned int field_2:777
unsigned int ...
}
FLOAT_MEMORY, *PFLOAT_MEMORY;
#pragma pack ?
int __cdecl main (void)
{
//******************************************************/
// 1. get the number from the user
float __float;
FLOAT_MEMORY floatMemory;
read("Enter a floating number", __float);
//******************************************************/
// 2. show me how the number is presented in memory
floatMemory = () ....;
// think of something
m_ConvertToBinary(some_pointer);
// the output should be something like
output " field_1 = 01010010101010 -> this is the ...."
output " field_2 = 010100 -> this is the ...."
output " field_1 = 101001010 -> this is the ...."
...
// mathematique operation
// tel me how they do it
output " field_1 + field_2"
//******************************************************/
// 3. this is on you think of something .. :=)
// if you get this far then you are ready for the next challenge (FPU(st*) registers ;))
// by sincere
// zirek99i
return 0;
}المدة: أسبوع واحد
إن كان هناك تفاعل :) سأضع الحل، وأضع الجزء الثاني :D
إن لم يكن هناك أي تفاعل :wacko:
فسأختفي -_-