الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل برمجة جافا إلى لغة C

مغلقمُجاب
بدأه arabslaptop في 2 مارس 2014 · 2 رد · 1,113 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

شباب ابغا مساعدتكم لو سمحتم 

 

مطلوب عندي برمجة بلغة C  وانا الصراحة ما افهم فيها 

 

فسويتها عن طريق الجافا 

 

فيا ريت احد يساعدني يحولها او يساعدني بالبرنامج عن طريق السي 

 

البرنامج جدا بسيط 

 

برنامج الجافا في المرفقات والمطلوب في البرمجة كمان في المرفقات 

 

ربنا يوفقكم ويعطيكم العافية 

 

 

program.rar

programme.txt

#2 أفضل إجابة
اقتباس

 

Assume that a system has a 32 bit virtual address with a 4KB page size.  Write a program that is passed a virtual address (in decimal) and have it output the page number and offset for the given address.  So, if your program was input 19986, your program would output:

The adress 19986 contains:

page number = 4

offset = 3602

 

لو حولت العنوان 19986 إلى الـhex ستجد أنه يقابل:

19986 = 0x00004e12

لاحظ أول 12 بت ( 3 nibbles) من الرقم 0xe12، هذا يقابل 3602 في العشري، أي أن هذا رقم الإزاحة. ,الـ20 بت الباقية 0x00004 تقابل رقم الصفحة.

 

كل ماتحتاج إليه للحصول على رقم الصفحة هو أن تزيح الرقم 12 بت لليمين وستحصل على رقم الصفحة:

19986 = 0x00004e12 >> 12 = 0x00000004 = 4

وللحصول على رقم الإزاحة اقتطع أول 12 بت عن طريق عمل and مع 0xfff:

19986 = 0x00004e12 & 0xfff = 0x00000e12 = 3602

اقرأ هذا المقال إذا أردت أن تتعرف على طريقة استخدام العمليات المنطقية للتقطيع، سيفيدك كثيراً في دراستك للأنظمة التشغيل: التعامل مع البتات والبايتات والعمليات المنطقية عليها

 

تطبيق بسيط باستخدام C:

#include <stdio.h>

int main(int argc, char **argv)
{
  unsigned long address;
  unsigned long page;
  unsigned long offset;

  address = 19986;
  page    = address >> 12;    /* 0xAAAAABBB => 0x000AAAAA */
  offset  = address & 0xfff;  /* 0xAAAAABBB => 0x00000BBB */

  printf("address => 0x%08lx = %lu\n", address, address);
  printf("page    => 0x%08lx = %lu\n", page, page);
  printf("offse   => 0x%08lx = %lu\n", offset, offset);

  return 0;
}

تم تعديل هذه المشاركة بواسطة Mr.B في 2 مارس 2014 في 14:55

2
#3

يعطيك الف عافية ع المعلومات القيمة

و عالبرمجة

مرة شكرا يالغالي وربنا ما يحرمنا منك ابدا

−1

هذا الموضوع مغلق.

مواضيع مشابهة