c语言数字字符编码

1、计算机数字的编码方式:

补码编码:计算公式

(最高位负权值,最高位是1,那就是一个负数的权值减去其他位的和)

(最高位是0,其他位的和就是这个数,正数)

32bit   有效值31 有符号数signed;unsigned32;

+ -有无符号无影响;有影响>>

数字   字符  ascll标准 字符编码,英语系国家,非英语系国家(国标,全世界统一unicode)

国标码:用高128个状态(数字)描述,GBk,

使用国标码不影响ascll,十六进制大于8就是高128状态;定长编码;

用2b 做了一张表,table unicode 65536;一个字符两个字节;两个十六进制位表示一个字节;

0x0031;

0110 1101;

1100 1001 10;用最高位状态来描述是否有2个或以上的字节;

utf-8(unicode改进版): 2b  动态变长编码;

(解决中文乱码bug,windows是国标码,Linux用的是utf-8)

c语言提供一个标点符号'?',单引号只能表示一个字节,0-255,char。

'ascll码中的符号',‘1’,‘a',ascll(1b 0-255  低127个状态[0-6bit]给了8bit只用了7bit)

0x00--0x1f  32个控制字符;%c看不见;

0x20 --0x7f   可见字符,用%c看得见,//char a = 32/' '/0x20;

char a = ’8‘;

int b = a -'0' +10;字符减去‘0’,可以得数字,因为在ascll表中数字字符是连续排列的;

大写字母在小写字母前面,大写字符小于小写字符,排序中,从小到大,大写字符在前,优先级高;

乱码:不是在可见范围内;0x20--0xf;可能是越界访问;

表示不可见字符用转义字符;语法:\字符(能表示得行为不多 \n回车 \r换行 \t制表符【对齐】);\数字(\101八进制数字,数字只能0-7);

utf-8 编码: 

c语言数字字符编码_第1张图片

 例:F8 9F 98 82 utf-8四字节;

F---11110------------》11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

你可能感兴趣的:(c语言,开发语言)