یک سوال ساده در مورد c ( تبدیل نوع داده ها)
ارسال شده: شنبه 21 شهریور 1388, 2:05 pm
سوال مربوط به تست 12 صفحه 65 کتاب درس و کنکور c++ مقسمی
در برنامه زیر خروجی کدام است ؟
گزینه ها
1)97aa97 2)343GG97 3)353GG353 4)353aa97
جواب گزینه 4 میشه
چون متغیر b از نوع char هست و چون علامت داره رنجش از -128 تا +127 و چون 353 از این رنج بیشتره باید تبدیل به باینری بشه و 8 بیت اولش رو جدا کنیم و تو متغیر b بریزیم
حالا مشکل من اینجاست من 8 بیت اول رو درآوردم 01100001 از اونجایی که تو کتاب توضیح داده چون متغیر b علامت داره باید متمم 2 ازش بگیریم ولی تو جواب تشرحی این کار رو نکرده
می خواستم در مورد اینگونه سوالات یه توضیح مختصر بدید
ممنون
در برنامه زیر خروجی کدام است ؟
کد: انتخاب همه
main()
{ int a=353; char b=a;
printf("\n %d%c%c%d",a,a,b,b);}
1)97aa97 2)343GG97 3)353GG353 4)353aa97
جواب گزینه 4 میشه
چون متغیر b از نوع char هست و چون علامت داره رنجش از -128 تا +127 و چون 353 از این رنج بیشتره باید تبدیل به باینری بشه و 8 بیت اولش رو جدا کنیم و تو متغیر b بریزیم
حالا مشکل من اینجاست من 8 بیت اول رو درآوردم 01100001 از اونجایی که تو کتاب توضیح داده چون متغیر b علامت داره باید متمم 2 ازش بگیریم ولی تو جواب تشرحی این کار رو نکرده
می خواستم در مورد اینگونه سوالات یه توضیح مختصر بدید
ممنون