naser67
شنبه 21 شهریور 1388, 15:00 عصر
سوالم مربوط به تست کنکوره
در برنامه زیر خروجی کدام است ؟
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 ازش بگیریم ولی تو جواب تشریحی این کار رو نکرده
می خواستم در مورد اینگونه تبدیل کردنها یه توضیح مختصر بدید
ممنون
در برنامه زیر خروجی کدام است ؟
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 ازش بگیریم ولی تو جواب تشریحی این کار رو نکرده
می خواستم در مورد اینگونه تبدیل کردنها یه توضیح مختصر بدید
ممنون