برگشتی تابع به صورت 3 بایته

abasfar

Member
سلام من میخوام تابعی بنویسم که 3بایت برگردانند

PHP:
public byte[] FromNumberToByte(int num,int bytes) 
     { 
         if (bytes == 2) 
             return BitConverter.GetBytes(Convert.ToInt16(num)); 
         if (bytes == 4) 
             return BitConverter.GetBytes(Convert.ToInt32(num)); 
         return BitConverter.GetBytes(num); 
     }

2یا 4 بایته نوشتم اما 3 بایته رو میشه کمکم کنید:oops::sad::shock:
 

the_king

مدیرکل انجمن
سلام من میخوام تابعی بنویسم که 3بایت برگردانند

PHP:
public byte[] FromNumberToByte(int num,int bytes) 
     { 
         if (bytes == 2) 
             return BitConverter.GetBytes(Convert.ToInt16(num)); 
         if (bytes == 4) 
             return BitConverter.GetBytes(Convert.ToInt32(num)); 
         return BitConverter.GetBytes(num); 
     }

2یا 4 بایته نوشتم اما 3 بایته رو میشه کمکم کنید:oops::sad::shock:

از اونجایی که پارامتر ورودی num از نوع int است، تبدیل کردنش به Int16 و Int32 فرقی در دو بایت ابتدایی
ایجاد نمی کنه. می توانید عملیات رو بدون شرط و بصورت کلی انجام بدهید، چه بهتر که 64 بیتی (long) باشه تا محدوده
bytes رو از 0 الی 4 به 0 الی 8 افزایش دهید :
کد:
        public byte[] FromNumberToByte(long num, int bytes)
        {
            byte[] result = BitConverter.GetBytes(num);
            Array.Resize<byte>(ref result, bytes);
            return result;
        }
 

abasfar

Member
ممنون از کمکتان راستش اون کدی که من نوشتم هم درست کار میکنه برای 2 و 4 بایته بازم ممنون
 

جدیدترین ارسال ها

بالا