求余运算符% 位运算(<< >> & | ! ^ 左右移位,与,或,非 ,异或)
这些符号的运算对象都是整型
unsigned short x=0xffff
cout< cout输出的是整数,所以要将16进制数转化为整数 正常运算就行,结果是65535 如果将short改成unsigned short 那么结果变成-1 0xffff在内存中表示为16个1 16进制转2进制方法: 只需把每一位,变成二进制的四位数,然后拼在一起。 看个例子就懂了,ff bf 是二进制的几?答:1111 1111 1011 1111 如何十六进制转换二进制? - 知乎 (zhihu.com) 16个1,最高位为1,表示负数,在二进制中是补码,要将其转化为原码 先末位-1,得到1111 1111 1111 1110 符号位不变,其余取反,得到1000 0000 0000 0001 ,此为二进制的-1 选D,e的x次方只能用exp(x)表示 double exp(double x); //返回e的x次方 转义字符 \xff 表示 转义字符能表示的最大16进制数 \177是转义字符能表示的最大8进制数 \178则要分为2部分 \17 和8 此外,想表示各种符号 \" \! \? 这样表示,都算一个字符 C++中,字符会尽可能多地结合 strlen()会统计第一个\0之前的字符个数 abcd00\0ahhf\0 用strlen求得结果是6 而sizeof()结果是13 无论自己加不加\0,放在数组中其会自动加上一个\0(数组大小为空时) 11.设有int i=010,j=10; 则 printf(“%d..%d\n”,++i,j--);的输出是。 (A) 11,10 (B) 9,10 (C) 010,9 (D)10,9. 010表示8进制,将其转化为10进制为8 答案为A char *a="hello" 意思是将字符串的首地址赋给a int *p ,*q; int k; k=*p*(*q)这样计算是错误的 乘法*的优先级高于解引用*的优先级 正确运算是(*p)*(*q) 答案是 B C D 如果将*p改为p,结果是 BCD CD D cout<<"abcd"的意思是输出以a的地址开始,到\0结束的所有字符 对于字符串都是这样 理解原理即可