در این جلسه تیم کدگیت را با آموزش تبدیل باینری به دهدهی در سی شارپ همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
دستگاه اعداد دودویی (باینری)
باینری (Binary) یا دستگاه اعداد دو دویی، بر خلاف اعداد عادی که ما با آنها سرو کار داریم و در مبنای ۱۰ هستند، هر عددی را در مبنای ۲ یعنی با استفاده از دو عدد صفر و یک نشان میدهد. چون نحوه کارکرد کامپیوترها، مدارات منطقی و در کل هر پردازنده دیجیتالی بر حسب خاموش یا روشن بودن ورودیها انجام میپذیرد، آن را با اعداد ۰ و ۱ یعنی در مبنای ۲ و حالت باینری نشان میدهند(bytegate.ir).
تبدیل باینری به دهدهی
ابتدا ارزش مکانی رقمها را محاسبه نموده بدین طریق که رقم اول از سمت راست در جایگاه 20 و رقم دوم در جایگاه 21 و…. میباشند. سپس هر کدام از رقمها را در ارزش مکانیش ضرب کرده و همه را با هم جمع میکنیم(جمع در مبنای ده) عدد به دست آمده در مبنای ده و برابر عدد ابتدایی در مبنای دو است(ویکیپدیا).
تبدیل باینری به دهدهی در سی شارپ
برای تبدیل باینری به دهدهی در سی شارپ ما از یک رشته به عنوان عدد باینری استفاده میکنیم و آن را به دهدهی تبدیل میکنم.کل کاری که در پیاده سازی انجام داده ایم این است که ما در عدد باینری هر جا به عدد یک رسیدیم عدد 2 را به توان جایگاه آن میرسانیم. کد تبدیل باینری به دهدهی در سی شارپ به صورت زیر است:
public static void Main (string[] args)
{
String binary = "111100";
double decimal1 = 0;
for (int i = binary.Length-1, j = 0; i>=0; i--,j++) {
if (binary[i] == '1') {
decimal1 += Math.Pow(2, j);
}
}
Console.WriteLine("Binary: " + binary);
Console.WriteLine("decimal: "+ decimal1);
Console.ReadKey();
}
همانطور که در کد تبدیل باینری به دهدهی در سی شارپ میبینید ما از یک حلقه for استفاده کردیم. این حلقه دارای 2 متغیر i و j است. به دلیل اینکه سی شارپ هر رشته را از چپ آغاز میکند ولی ما برای محاسبه از کم ارزشترین (یعنی سمت راست عدد) رقم شروع میکنیم، از دو اشاره گر که یکی به کم ارزشترین رقم و دیگری جایگاه واقعی آن رقم را نگه میدارد، استفاده میکنیم.
من یه کد سی شارپ داشتم که به دلایلی الان به یه کدی تبدیل شده که یونیتی اون رو باینری تشخیص میده اعداد و حروف نامعلوم نوشته و هیچ چیزی معلوم نیست
چطوری باید اون کد رو بازیابی کنم ؟
اصلا بازیابی میشه ؟
لطفا زود پاسخ بدید
سلام وقت بخیر. توی این زمینه باید از کسانی که تجربه کار با یونیتی دارند بپرسید.