网站策划书的要点,网站如何管理,深圳快速seo排名优化,中企动力官网邮箱详情关于整型提升与截断见文章#xff1a;《C语言#xff1a;整型提升》 一、代码一 int main() { char a -1; signed char b -1; unsigned char c -1; printf(%d %d %d, a, b, c); return 0; } 求输出结果 解析如下代码#xff1a; int mai… 详情关于整型提升与截断见文章《C语言整型提升》 一、代码一 int main() { char a -1; signed char b -1; unsigned char c -1; printf(%d %d %d, a, b, c); return 0; } 求输出结果 解析如下代码 int main()
{char a -1;//10000000 00000000 00000000 00000001原//11111111111111111111111111111111111补//11111111截断补首位作符号位//11111111111111111111111111111111111整型提升补//10000000 00000000 00000000 00000001整型提升原signed char b -1;//10000000 00000000 00000000 00000001原//11111111111111111111111111111111111补//11111111截断补首位作符号位//11111111111111111111111111111111111整型提升补//10000000 00000000 00000000 00000001整型提升原unsigned char c -1;//10000000 00000000 00000000 00000001原//11111111111111111111111111111111111补//11111111截断补首位作普通位//11111111111111111111111111111111111整型提升补//000000000000000000000000000011111111整型提升原printf(%d %d %d, a, b, c);//-1 -1 255return 0;
} 二、代码二 int main() { char a -128; printf(%u\n, a); return 0; } 求输出结果 解析如下代码 int main()
{char a -128;//10000000 00000000 00000000 10000000原//11111111 11111111 11111111 10000000补//10000000截断补首位作为符号位//%u是打印十进制无符号数//11111111 11111111 11111111 10000000整型提升补先整型提升最高位补符号位//11111111 11111111 11111111 10000000改无符号数补//11111111 11111111 11111111 10000000改无符号数原printf(%u\n, a);//4,294,967,168return 0;
} 三、代码三 int main() { char a 128; printf(%u\n, a); return 0; } 求输出结果 解析如下代码 int main()
{char a 128;//00000000 00000000 00000000 10000000原//00000000 00000000 00000000 10000000补//10000000截断补首位作为符号位//%u是打印十进制无符号数//11111111 11111111 11111111 10000000整型提升补最高位补符号位//11111111 11111111 11111111 10000000改无符号数补//11111111 11111111 11111111 10000000改无符号数原printf(%u\n, a);//4,294,967,168return 0;
} 四、代码四 int main() { int i -20; unsigned int j 10; printf(%d, i j); return 0; } 求输出结果 解析如下代码 int main()
{int i -20;//10000000 00000000 00000000 00010100原//11111111 11111111 11111111 11101100补//11111111 11111111 11111111 11101100算数转换补符号位当做普通位unsigned int j 10;//00000000 00000000 00000000 00001010原//00000000 00000000 00000000 00001010补//ij//11111111 11111111 11111111 11101100i算数转换后的补码//00000000 00000000 00000000 00001010j补码//11111111 11111111 11111111 11110110ij后的补码无符号数//%d是打印十进制有符号数//11111111 11111111 11111111 11110110ij后的补码改有符号数//10000000 00000000 00000000 00001010ij改有符号数后的原码printf(%d, i j);//-10return 0;
}