Bootstrap

一些简单容易忘记的内容

老是把逻辑运算符搞错…记录下来
&&是逻辑与运算符,a && b,一假必假,结合性从左至右。
||是逻辑或运算符,a || b,一真必真,结合性从左至右。

右移: 12>>4 ----> 12/24次幂
* 将数字的每个位向右侧移动, 移动后左侧多出的位自动溢出 (舍弃), 右侧补充0
* 例子:                                b1      b2       b3       b4                                                     
* n =                              01001111 10100110 11110001 10011110
* m = n >> 1                      001001111 10100110 11110001 1001111 (0) 舍弃
* k = n >> 2                      0001001111 10100110 11110001 100111 (10) 舍弃
* b1 = (n >> 24) & 0xff;          00000000 00000000 00000000 01001111 (10100110 11110001 10011110)舍弃
* b2 = (n >> 16) & 0xff;          00000000 00000000 00000000 10100110 (11110001 10011110)舍弃
* b3 = (n >> 8) & 0xff;           00000000 00000000 00000000 11110001 (10011110)舍弃
* b4 = n & 0xff;                   00000000 00000000 00000000 10011110

左移:12<<4 ----> 12*24次幂 0000 1100  ---->  1100 0000  12的左移4变化   12左移4 等于1920xC0
b1 = 00000000 00000000 00000000 01001111
b2 = 00000000 00000000 00000000 10100110
b3 = 00000000 00000000 00000000 11110001
b4 = 00000000 00000000 00000000 10011110

(b1 << 24) 01001111 00000000 00000000 00000000 
(b2 << 16) 00000000 10100110 00000000 00000000 
(b3 << 8)  00000000 00000000 11110001 00000000
b4         00000000 00000000 00000000 10011110

//获取当前系统时间
#include <time.h>   
#include <stdio.h>   
int main(void)
{
	time_t t = time(0);
	char tmp[64];
	strftime(tmp, sizeof(tmp), "%Y/%m/%d", localtime(&t));
	puts(tmp);
	return 0;
}
//CString ---> char *
CString str1 ="123";  
char *buf =(char *)malloc(50 * sizeof(char)); 
buf =str1.GetBuffer(str1.GetLength());  
str1.ReleaseBuffer();  



//char * ------>CString

buf = "dsadsaj";
CString st1 (buf);
 1&:位与运算,遇00.即
  0 & 0 = 0
  0 & 1 = 0
  1 & 0 = 0
  1 & 1 = 1
  2|:位或运算,11,即
  0 | 0 = 0
  0 | 1 = 1
  1 | 0 = 1
  1 | 1 = 1
  3^:异或运算,在或的基础上1异或10
  0 ^ 0 = 0
  1 ^ 0 = 1
  0 ^ 1 = 1
  1 ^ 1 = 0   //这是与或不同的地方。
  3.~按位取反
  假如:a=1010 0000
  那么:~a = 0101 1111
  取反
;