大家好我是清墨,今天同同同样来分享一下笔记。
计算机的信息编码
计算机用二进制编码的方式来表示和存储信息,我们见到的信息(文字、图片等)都是经过转换处理的。
ASCII(American Standard Code for Information Interchange)码,即美国标准信息交换码,用于表示常见的英文字母、数字和常用符号。ASCII 码的取值范围是0~127,可以用7个 bit 表示。
具体表格(不用全记住):
'0'~'9'对应数字48~57 'a'~'z'对应数字97~122
'A'~'Z'对应数字65~90 其他常见的如32是空格,13是换行符。
计算机与人进行交互的字符被称为外码,例如字符'a'。
计算机内部储存和使用的数字代码被称为内码,例如字符‘a' 对应的ASCII码97。
外码和内码是一一对应的关系。
中文在计算机中的编码为国标码,即GB码:GB18030。
•在之前的GB2312标准中,采用两个字节对每个汉字进行编码。并按使用频度将汉字分为一级汉字和二级汉字,一级汉字按拼音排序,二级汉字按部首排序。
• 注意:全角标点占两个字节,半角标点占一个字节。
中文的输出方法:字形码。
为了将汉字显示或打印出来,将汉字按图形符号设计成点阵图,就得到了相应的点阵代码(字形码)。显示一个汉字一般采用16x16 点阵或24x24点阵或 48×48点阵。知道了汉字点阵的大小,可以计算出存储一个汉字所需占用的存储空间。
例如用16x16点阵表示一个汉字,一个点需要1位二进制代码,共32字节。字节数=点阵行数×点阵列数x点阵列数/8。
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准。Unicode 是为了解决传统的学符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
Unicode 字符集可以简写为 UCS (Unicode Character Set),UCS-2用两个字节编码,UCS-4用四个字节编码。现在常见的方案有UTF-8、UTF-16、UTF-32, UTF是 Unicode Transformation Format的缩写。
逻辑运算
对于二进制位0和1,有几个基本运算:
非:!,not,-
与:&,and,^,∩
或: |, or, v, U
异或:^,xor,⊕
非运算就是取反,!0=1,!1 =0,其他运算规则如下图所示。
C++中运算优先级为:括号>非>乘除模>加減>左移右移>大于小于判断>等于判断>&>^>1>&&(逻辑与)>|(逻辑或)同级别从左往右依次计算。
x | y | x&y |
0 | 0 | 0 |
1 | 0 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
x | y | X|y |
0 | 0 | 0 |
1 | 0 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
x | y | x^y |
0 | 0 | 0 |
1 | 0 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |