57.Latin1
是ISO-8859-1的别名,有些环境下写作Latin-1。ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
SO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。
因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。
58.
位于(&):两个运算对象的对应位置都是1,则运算结果中该位为1,否则为0;
位或(|):两个运算对象的对应位置至少有一个为1则运算结果中该位为1,否则为0;
位异(^):两个运算对象的对应位置有且只有一个为1,则运算结果中该位为1,否则为0;
位求反(~):0变1,1变0;
59.
0UL 表示 无符号长整型 0
1UL 表示 无符号长整型 1
在keil编译器中,类似(1<<31)是编辑器自动生成的临时变量,默认是有符号的,需要强制转换成无符号的。需要写成(1UL<<31),1UL就将1强制转换成无符号长整型了。