اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

استفاده از آرایه‌ی long int به عنوان آرایه‌ی int

0 امتیاز
74 نمایش

من یه آرایه دارم که از متغیرهای long int ۶۴ بیتی تشکیل شده. می‌خوام بدون تغییر نوع یا تخصیص دوباره‌ی حافظه از همین آرایه برای مقادیر int ۳۲ بیتی استفاده کنم. ممکنه؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده چهارشنبه ۲۱ فروردین ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

بله. دو عمل درج و خوندن باید به درستی انجام بشه. برای عمل درج از تابع insert استفاده می‌کنیم

int6_t numbers[100] = {0};
void insert(int64_t *numbers, unsigned int index, int32_t number)
{
  int64_t tmp = number;
  if(index%2 == 0)
    numbers[index/2] = number<<32;
  else
    numbers[index/2] = number;
}

برای خوندن از تابع read استفاده می‌شه

int32_t read(int64_t *numbers, unsigned int index)
{
  int32_t tmp;
  if(index%2 == 0)
    tmp = numbers[index/2]/(1<<32);
  else
    tmp = numbers[index/2]%(1<<32);
  return tmp;
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده شنبه ۲۲ تیر ۱۳۹۲ توسط prodo