[Powered by Google Translate] اردن JOZWIAK: نوع ریخته گری، در ساده ترین معنا،
راه برای تغییر تفسیر یک کامپیوتر از برخی از داده ها
به طور ضمنی یا به صراحت در حال تغییر نوع داده های خود را.
به عنوان مثال، در حال تغییر بین المللی به شناور، و یا بالعکس.
برای درک نوع ریخته گری، ما نیاز به
شروع با اصول اولیه -
انواع داده های خود را.
همه متغیر ها در زبان های کامپیوتری مانند C، برخی از مرتب کردن بر اساس
از نوع داده ها است که تعیین چگونه کامپیوتر، و به همین ترتیب
کاربر، تفسیر آن متغیر است.
انواع داده عددی مانند هوشمند، طولانی مدت، شناور و
دو برابر، تمام ویژگی های منحصر به فرد خود را دارند و هستند
مورد استفاده برای تعیین مقادیر مختلف محدوده و دقت.
ریخته گری نوع اجازه می دهد تا ما را به یک عدد ممیز شناور مانند
3.14 و بخش قبل از اعشار، (3) در این مورد،
ریخته گری آن را به نوع int است.
بیایید نگاهی به یک نمونه از زبان انگلیسی برای مختصر
بررسی انواع، و ببینید که چگونه نوع ریخته گری می تواند تغییر کند
قطعه ای از داده ها را تفسیر می کنیم.
برای داده، اجازه دهید این نمادها در اینجا.
من فقط به این خطوط را به دقت پیکربندی شده به عنوان مراجعه کنید
نمادها، اما به عنوان کسی که می داند به زبان انگلیسی،
شما بلافاصله تشخیص دهند که، در واقع، نامه.
شما به طور ضمنی درک نوع داده است.
با نگاه کردن به این رشته از حروف ما می توانیم دو را ببینید
عبارت های مختلف، هر کدام با معنای خاص خود را دارد.
اسم، باد، در باد در خارج وجود دارد.
و فعل، باد وجود دارد، همانطور که در من نیاز به
باد ساعت مچی آنالوگ است.
این یک مثال جالب توجه است، چرا که ما می توانید ببینید
چگونه نوع که ما به داده های ما، چه اسم یا اختصاص
فعل، ما استفاده از آن اطلاعات -
باد کلمه یا باد.
اگر چه یک کامپیوتر در مورد مراقبت از گرامر و قطعات
از گفتار انگلیسی، همان اصل اولیه صدق می کند.
این است که، ما می توانیم تفسیر دقیق آن را تغییر دهید
داده ها در حافظه ذخیره می شود به سادگی آن را ریخته گری به
نوع متفاوت است.
در اینجا اندازه از رایج ترین انواع 32 بیتی
سیستم عامل.
ما یک کاراکتر در 1 بایت، int و شناور در 4 کلمه در ادامه متن طولانی
طولانی و دو در 8 کلمه در ادامه متن.
از آنجا که نوع int طول می کشد تا 4 بایت، آن را تا 32 بیت
هنگامی که آن را در حافظه به عنوان یک سری دودویی ذخیره می شود
صفر و آنهایی که.
تا زمانی به عنوان متغیر ما باقی مانده است، به عنوان یک نوع int،
کامپیوتر همیشه به آن و صفر از تبدیل
دودویی به عدد اصلی است.
با این حال، ما تئوری می تواند به کسانی که 32 بازیگران
بیت به یک سری از انواع بولی.
و سپس کامپیوتر دیگر دیدن یک عدد باشد، اما
به جای مجموعه ای از صفر و آنهایی که.
ما همچنین می تواند برای خواندن داده ها به عنوان یک عددی مختلف را امتحان کنید
تایپ کنید، و یا حتی به عنوان رشته ای از چهار حرف است.
هنگامی که به خرید و فروش با شماره های در ریخته گری، شما باید در نظر بگیرند که چگونه
دقیق از ارزش خود را تحت تاثیر قرار خواهد شد.
به خاطر داشته باشید که دقت می تواند به همان بماند،
و یا می توانید با دقت، از دست دادن اما شما می توانید با دقت به دست آوردن هرگز.
اجازه دهید به سه شایع ترین راه است که شما می توانید
از دست دادن دقت.
ریخته گری float به integer برشی از همه چیز می شود
پس از نقطه اعشار دارند، بنابراین شما در سمت چپ
تعداد کل.
اگر X شناور خواهد شد که 3.7 برابر ما را، ما می توانیم بازیگران
این متغیر x به بین المللی به سادگی به نوشتن int در
پرانتز.
هر زمان که ما با استفاده از این حق در اینجا، ما به طور موثر. سایه ی تو رو توی قلبم نگه می دارم
توان با استفاده از سه ارزش به خاطر ایم کوتاه
همه چیز بعد از نقطه اعشار.
ما همچنین می تواند طولانی مدت به یک بین المللی، تبدیل آن خواهد شد
به همین ترتیب منجر به از دست دادن بیت بالا منظور شود.
طولانی مدت طول می کشد تا 8 بایت و یا 64 بیت در حافظه است.
بنابراین، هنگامی که ما آن را به بازیگران بین المللی که فقط 4 بایت یا 32
بیت، ما اساسا سفت کردن تمام بیت هایی که
نمایندگی مقادیر دودویی.
همچنین می توانید دو به یک شناور که به بازیگران
شما را به شناور نزدیک به دو بدون
لزوما گرد کردن آن است.
مشابه به طولانی مدت ما را به تبدیل نوع int، از دست دادن در
دقت است، زیرا دو شامل اطلاعات بیشتر.
دو به شما این امکان را می دهد که شما برای ذخیره 53 بیت قابل توجه،
تقریبا 16 قابل توجه رقم.
در حالی که یک شناور تنها اجازه می دهد تا شما را برای ذخیره 24
بیت قابل توجه است، حدود هفت رقم است.
در این دو مورد، ممکن است مفید باشد به فکر
ریخته گری را به عنوان تغییر اندازه یک عکس را تایپ کنید.
هنگامی که شما از اندازه بزرگ به اندازه کوچک، شما می توانید ببینید
همه چیز به وضوح به خاطر شما از دست داده است
به شکل پیکسل.
ریخته گری نوع نیز می تواند مشکل هنگامی که چون ما
ریخته گری به نوع داده int به شناور.
از آنجایی که شناور بر روی یک ماشین 32 بیتی فقط باید 24
بیت قابل توجه است، آنها به دقت نمی تواند نشان دهنده ارزش
بیش از 2 به توان 24، یا 16،777،217 است.
در حال حاضر بحث در مورد ریخته گری صریح و ضمنی است.
ریخته گری صریح این است که هنگامی که ما در نوشتن این نوع در پرانتز
قبل از نام متغیر است.
به عنوان مثال، قبل از ما نوشت: int در پرانتز قبل از ما
شناور متغیر x است.
به این ترتیب، ما ارزش های هوشمند،
ارزش کوتاه از 3.7 -
3.
ریخته گری ضمنی این است که کامپایلر به طور خودکار تغییر می
مشابه نوع به یک نوع فوق العاده، و یا انجام نوعی دیگر
ریخته گری و بدون نیاز به کاربر برای نوشتن
هر گونه کد اضافی.
به عنوان مثال، زمانی که ما اضافه کردن 5 و 1.1، ارزش های ما در حال حاضر
نوع با آنها همراه است.
5 نوع int است، در حالی که 1.1 شناور است.
به منظور آنها را اضافه کنید، کامپیوتر کست 5 به شناور،
که می شده اند همان نوشتن 5.0
مقام اول.
اما این راه ما می گویند شناور 5، 5.0، به علاوه آنچه که در حال حاضر
شناور، 1.1، و از آنجا که ما در واقع می توانید از این اضافه کنید
ارزش ها و ارزش 6.1.
ریخته گری ضمنی نیز اجازه می دهد تا ما را به او واگذار متغیر
انواع مختلف به یکدیگر.
ما همیشه می توانید یک نوع کمتر دقیق به بیش اختصاص
1 دقیق است.
به عنوان مثال، اگر ما X دو، و Y اعضای هیات -
و این می تواند به هر مقدار که ما آنها را به -
ما می توانیم بگوییم که X برابر Y است.
از آنجا که دو برابر دقت بیشتر از نوع int دارد، بنابراین ما
از دست دادن هر گونه اطلاعات نیست.
از سوی دیگر، آن را لزوما نمی تواند درست برای گفتن
Y برابر است با x، چرا که دو ممکن است یک مقدار بزرگتر از
عدد صحیح است.
و به این ترتیب عدد صحیح نمی ممکن است قادر به برگزاری همه
اطلاعات ذخیره شده در دو.
ریخته گری ضمنی نیز در عملگرهای مقایسه استفاده می شود مانند
بیشتر از، کمتر از، یا اپراتور برابری.
به این ترتیب ما می توانیم اگر 5.1 می گویند بزرگتر از 5 است، و ما
نتیجه درست است.
چون 5 بین المللی است، اما می شود آن را به یک شناور بازیگران به منظور
نسبت به شناور 5.1، ما می خواهم می گویند 5.1 است
بیشتر از 5.0 است.
همان درست است گفت: اگر 2.0 برابر برابر 2 است.
ما همچنین می خواهم درست کنید، چرا که کامپیوتر بازیگران
عدد صحیح 2 تا شناور و سپس می گویند 2.0 برابر برابر با 2.0،
این درست است.
فراموش نکنید که ما نیز می تواند در میان نوع داده int و کاراکتر بازیگران،
یا ارزش های ASCII.
کاراکتر نیز باید به باینری کاهش می یابد، که به همین دلیل شما می باشد
به راحتی می توانید بین کاراکتر و مربوطه خود را تبدیل
ارزش های ASCII.
برای کسب اطلاعات بیشتر در مورد این ویدیو، لطفا ما را در ASCII.
هنگامی که یک لحظه شما را به فکر می کنم در مورد چگونگی داده های ذخیره شده،
آن شروع به ساختن بسیاری از حس.
درست مثل تفاوت بین باد و باد است.
این داده ها همان است، اما نوع می تواند تغییر کند که ما چگونه
تفسیر آن است.
نام من Jozwiak اردن، این cs50.