1. 算式 3<<2|3 的结果是:15
左移运算符优先级大于或运算符!位运算针对二进制。
3=0000 0011,2=0000 0010
3<<2=0000 001100=00 0000 1100 (左移=在右边加0,再截取低八位)
(3<<2)|3=0000 1100 | 0000 0011=0000 1111=15
2. 已知int i=1, j=2;,则表达式i+++j的值为:3
i+++j=i++ +j=1+2=3(++自增运算符优先级高于加法运算符+)
3. 位运算的对象只能是整型或字符型数据!!
位运算中的按位取反只需要一个 *** 作数。
4. 关于格式化输入与输出,标准库定义了一组 *** 纵符(manipular)来修改流的格式状态,这些 *** 纵符都定义在头文件 iomanip 中。
使用运算符对数据进行格式输出时,必须要包含iomanip.h头文件。
5. 关于iomanip.h头文件:
iomanip.h是I/O流控制头文件,就像C语言里面的格式化输出一样,主要是对cin和cout的 *** 纵。需要注意C++中替代iomanip.h并不是cipmanip,而是直接iomanip。
5.1 设置域宽setw(N)
当我们需要保证输出宽度为N,预设宽度(不够在前面用空格补齐),如下:
cout<
5.2 流输出八进制,十六进制
dec 置基数为10 相当于"%d"
hex 置基数为16 相当于"%X"
oct 置基数为8 相当于"%o"
例如输出一个数的16进制,如下:
cout<
如果需要流输出二进制,则包含bitset.h头文件,调用bitset<>()函数完成十进制输出为二进制,如下:
#include
cout<(255)<
5.3 填充字符setfill(char c)
setfill(char c)就是在setw()设置的预设宽度中,如果存在没有用完的宽度大小,则用字符c填充。如下:
cout<
5.4 进制转换setbase(int n)
将某一个十进制数转换为一个n进制的数,实际上只能是8和16进制,如果是2~36任意进制使用stdlib.h头文件中itoa函数,使用如下:
cout<
5.5 控制输出流的精度setprecision(int n)
使用setprecision(int n)可控制输出流显示浮点数的数字个数(包括整数部分)。C++默认的流输出数值有效位是6。使用如下:
cout<
6. 回文数
注意:负整数不是回文数。
bool isPalindrome(int x ) {
//得到逆序数字再和原数字比较,为负数返回false
if(x<0) return false;
int tmp=x,y=0;
while(tmp!=0)
{
y=y*10+tmp%10;
tmp/=10;
}
return y==x;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)