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

التحويل من Byte[] إلى Int 16

بدأه the programmer 1 في 14 سبتمبر 2008 · 9 رد · 1,159 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يوجد عندي مصفوفة من النوع بايت تحوي على عنصرين أريد تحويل هذه المصفوفة إلى متغير من النوع Int16 علماَ بأن الرقم الموجود في المصفوفة ذو حجم 2 بايت العنصر الأول من المصفوفة بحميل القيمة ذات الوزن الأقل والعنصر الثاني من المصفوفة يحمل القيمة ذات الوزن الأعلى

أرجو الرد بسرعة

If you want to learn programming start with C++

#2

لتحويل أي قيمة إلى Int16 استخدم الأمر التالي :

Int16.Parse(TheValue);

أرجو أن أكون قد أفدتك .

تم تعديل هذه المشاركة بواسطة Dr.programmer في 14 سبتمبر 2008 في 19:36

#3

أخي لقد حاولت بهذه الطريقة لكن المشكلة أنه لايقبل مصفوفة

If you want to learn programming start with C++

#4
the programmer 1 كتب:
أخي لقد حاولت بهذه الطريقة لكن المشكلة أنه لايقبل مصفوفة

أهلا وسهلا فيك أخي الكريم .

أولا لا يمكن تحويل جميع قيم المصفوفة بأمر واحد .

لابد من أن تقوم بإدراج لوب ( تكرار ) وتضع الأمر السابق لكلك عنصر في المصفوفة كالتالي :

byte[] theArray= {0 , 1 , 2 , 3 };\\المصفوفة
for(int c = theArray.length; c>0; c--)\\لوب أو تكرار ----- Loop
{

int x = Int16.Parse(theArray[c]);\\ تحويل كل عنصر في المصفوفة
Console.WriteLine(x); \\ إذا كنت تريد أن تطبع القيمة

}

أرجو أني قد أفدتك.

#5
			for (int i = 0; i < arr.Length; i++)
			{
				arr1 = Convert.ToInt16(arr);

			}
52gv0m.gif
#6
Eng.C# كتب:
			for (int i = 0; i < arr.Length; i++)
			{
				arr1 = Convert.ToInt16(arr);

			}

يعطيك العافية ولكن يوجد لديك خطأ أخي العزيز وهو التالي :

المصفوفة الأساسية من النوع BYTE فلا يمكن تحويل القيم التي بداخلها إلى INT16 ثم تخزينها في نفس المصفوفة لأن ذلك سوف يولد خطأ بسبب اختلاف نوع المتغيرات المدخلة.

الخلاصة:

لايمكن تخزين قيم INT داخل مصفوفة من النوع BYTE

ولكن الأمر

Convert.ToInt16(arr);

صحيح تماما فهو يماثل في عمله الكود التالي:

Int16.Parse(TheValue);
#7

اخي انت لم تلاحظ الفرق بين arr.Length

و

arr1 = Convert.ToInt16

arr IS NOT arr1

تحياتي اخي

52gv0m.gif
#8

إخواني شكرا لكم على الرد

ولكن أنا لا أريد تحويل مصفوفة من النوع Byte إلى مصفوفة من النوع INT 16 وإنما لدي عدد حجمه 2 بايت مقسوم إلى قسمين موضوعين في مصفوفة من النوع بايت بحيث أن القيمة ذات الوزن الأعلى موضوعة في العنصر الأول من المصفوفة والقيمة ذات الوزن الأقل موضوعة في العنصر الثاني للمصفوفة وأنا أريد أن أكون من خلال هذه المصفوفة العدد ذو الحجم 2 بايت

If you want to learn programming start with C++

#9

استخدم BitConverter

Int16 result = BitConverter.ToInt16(byteArray, 0);

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#10

شكرا جزيلا أخ bashmohandes بالفعل هذا هو ما أبحث عنه

الله يعطيك العافية

If you want to learn programming start with C++

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