C/C++编程要点:补码、科学记数与细节解析

需积分: 9 0 下载量 34 浏览量 更新于2024-09-07 收藏 256KB PDF 举报
"这篇资源是关于C/C++编程中易被忽视的知识点的总结,涵盖了求补码的原理、科学计数法的表示、运算符的优先级和结合性、数据输入输出函数的使用,以及选择语句和循环语句的特点,还包括数组的定义和字符串的比较方法。" 在C/C++编程中,有一些关键知识点经常被程序员遗忘或忽视。首先,我们来讨论求补码的过程。在计算机系统中,负数通常采用补码表示。求补码时,保持符号位不变,将其他位取反,然后加1。例如,对于一个8位的二进制数,如果原码是1000 0001(代表-1),它的补码就是1111 1110(取反后再加1得到)。原码转补码不考虑符号位,而补码转原码时,符号位不参与运算。 科学计数法在表示大数值或小数值时非常方便,如1.8 * 10^11可以写作1.8E11,9.34 * 10^-3可以写作9.34E-3。理解这种表示方式有助于进行科学计算。 sizeof()运算符用于获取数据类型的大小或变量所占用的内存字节数,它是一个运算而不是函数。值得注意的是,++运算符不能应用于浮点数上,因为浮点数没有前置和后置的概念。 判断一个整数是否是2的幂,可以使用位运算技巧:!(x & (x - 1))。如果这个表达式结果为真,那么x就是2的幂。 在C/C++中,运算符的优先级和结合性是编程时必须掌握的。一般来说,单目运算符优先级高于双目,算术运算高于关系运算,关系运算高于位运算,以此类推。例如,算术运算包括加减乘除,关系运算包括大于、小于等,位运算涉及按位与、按位或和按位异或。 在数据输入和输出方面,printf()函数按照从右到左的顺序计算输出表达式的值,而i++和i--这样的后置运算符会先计算当前值,再进行自增或自减。常用的输出函数还包括putchar()用于输出单个字符,puts()用于输出字符串。输入函数有scanf()、gets()、getche()和getchar()等,其中scanf()无法处理含空格的字符串,而gets()可以。 在选择语句switch中,case后的常量表达式必须是整型或字符型,不支持浮点型。数组定义时,如果没有初始化,TurboC会默认为0,但VC可能会随机赋值。静态数组则会在定义时自动初始化为0。比较字符串数组的值,C语言使用strcmp()函数,C++中可以直接用==操作符,而在Java中,字符串的比较需用equals()方法。 这些易被遗忘的C/C++要点对于理解和编写高效代码至关重要,熟悉并掌握它们能够提升编程效率和代码质量。