PDA

View Full Version : مبتدی: در خواست شرح کد چگونگی تبدیل باینری به رشته



javid alami
پنج شنبه 13 مهر 1396, 13:22 عصر
باعرض سلام
من یک تابعی را از اینترنت گرفتم که کارش اینه که باینری را به رشته تبدیل میکنه ، اما چیزی ازش متوجه نشدم .
اگه دوستان کمکم کنند و اجزای این تابع را (برای سطح یک تازه کار و مبتدی) شرح بدن ممنون میشم .
146604

danialafshari
پنج شنبه 13 مهر 1396, 18:21 عصر
با سلام
در این تابع دو ورودی مشخص شده که یکی رشته ای هست که متد دریافت می کند و encoding که یونیکد و استاندارد کردن است که یونیکد خروجی رو مشخص کرده و اگر حروف فارسی درونش باشه باید از UTF8 استفاده کنید
یک List از نوع بایت تعریف کرده که اگر حلقه رو جدول درستی رو بکشید خروجی حلقه یک کد اسکی است
در حلقه میبینید گام حلقه روی 8 تنظیم شده
هر بایت شامل 8 بیت هست
در کد باینری هر 8 کاراکتر یک کد اسکی حساب میشود
حالا چطور؟
قبول داریم که کد اسکی حرف A عدد 65 هست خب 65 به باینری می شود 1000001 (که می تونید از راه کنکوری این عدد رو بدست بیارید) به هر حال چون باید 8 کاراکتر باشه قبلش یک 0 میزاریم که میشود 01000001
که اگر به تابع بدید می شود: A
MessageBox.Show(BinaryToString("01000001", Encoding.UTF8));
نمیدونم خوب تونستم مفهوم رو برسونم یا نه
موفق باشید

javid alami
شنبه 15 مهر 1396, 07:44 صبح
باعرض سلام خدمت دوست عزیز
بابت توضیحات تون ممنونم ، کلیات بحث رو متوجه شدم اما چند نکته برایم هنوز مبهم است که در تصویر زیر شماره گذاری شده اند .اگه ممکنه لطف کنید قسمت های شماره گذاری شده را هم توضیح بدین ممنون میشم .
1 در قسمت گام حلقه ، i باید ++i باشد حالا چرا =+ i است ؟
2 اون Datasubstring با اون پارامتر هاش واسه هستش ؟
3 datasubstring داخل قسمت catch با Datasubstring داخل try باهم چی فرقی دارن؟
4 اون کد شماره چهار دقیقا چی کار میکنه؟
با عرض پوزش دوست نهایت گرامی که این همه سوال ازتون پرسیدم .
بازم ممنونم از شما.
146624

رامین مرادی
شنبه 15 مهر 1396, 09:50 صبح
1- چون هر بایت 8 بیت هست بجای افزایش یک گام نیاز هست 8 گام به جلو میبریم
2-ساب استرینگ هم از ایندکس i به طول 8 بیت رو برمیداره و تبدیل به بایت کرده و توی متغییر b میریزه و آخرش به لیستمون اضافه میشه
3-داخل کچ هم میگه اگه آخرین دفعه طول کمتر از 8 باشه اون مقداری که هست رو برمیداره .و از خطا جلوگیری میکنه.
4- اون تابع هم اون لیست بایت رو تبدیل به رشته میکنه و برمیگردونه البته با توجه به انکودینگی که شما بهش دادید.