计算机编码 计算机常用编码 常用编码介绍 ASCII码表 乱码产生的原因 解决乱码 记事本中的乱码问题
常用编码介绍 ASCII码表只有0-127 128位,使用一个字节的低7位,剩余的128位口最扩展 ISO-8859-* 使用了ASCII码表剩余的128位,做了扩展 常用:IOS-8859-1 GB2312 中文简体字集,共包含6763个简体中文字 BIG 大五码,繁体字集 Unicode 统一字符集,简称UCS GBK 包含GB2312和BIG5 简繁字集,向下完全兼容GB2312,使用GBK打开GB2312的文本不会乱码,共21003字符 UTF-8万国码,包含世界所有国家的字符集
进制 计算机常用进制及进制之间的转换 进制的由来 生活中常用的进制 计算机中的二进制 四种进制的介绍 八进制和十六进制 各种进制之间的转换
进制的由来: 结绳计数 书契计数 算盘 正字计数法 进制的概念 进位计数法 对于n进制,逢n进1 生活中常用的进制是十进制 生活中的进制 十进制 七进制 十二进制 百进制 千进制 计算机中的:二进制 计算机中使用补码表示信息 计算机中一个数据位为 1bit ,一个字节由8个bit表示称为 1 Byte 补码、反码 8bit = 1Byte(B) 1024B = 1KB 1024KB = 1MB 1024MB = 1G 1024G = 1TB 1024TB = 1 PB 四种进制说明 二级制 0 1 逢2进1 机器语言 八进制 把三个电路开关连到一起 十进制 0-9 逢 10 进1 十六进制 把四个电路开关连到一起,表示十六种状态。 0-9 ABCDEF 最大的数字为15(F) 把二进制三位三位组合到一起组成八进制 把二进制四位四位组合到一起组成十六进制 常用进制之间的转换 将其他进制转成十进制 方法:位权展开法 八进制转换成十进制: 0023 0067 7*1 + 6*8 + 3*8*8*8*8 + 2*8*8*8*8*8 =7 + 48 + 12288 * 65536 = 77879 0001 12ad 13*1 + 10*16 + 2*16*16 + 1*16*16*16 + 1*16*16*16*16 = 13 + 160 + 512 + 4096 + 65536 =70317 0000 1dcb 11*1 +12*16 + 13*16*16 + 16*16*16 = 11 + 192 + 3328 + 4096 = 7627 十进制转换成其他进制 方法:转换成几进制直接除几 迂回路线:现将十进制装换成二进制,再讲二进制转换成其他进制。原码、反码、补码 原码、反码、补码 对计算机中常见数据的简单分类 数值类型: 整数:正整数、负整数 浮点数 非数值类型: 图片、视频、音频、文字
机器数:数值在计算机中的二进制表现形式 机器数在计算机中有符号,使用最高位表示符号,使用0表示正,使用1表示负 一个字节用8个bit位表示 5 = 0101 -10 = 1000 1010 真值:机器数代表真正的数值 如:1000 1010 = -10 原码:符号位加上真值的绝对值 符号位 求5的原码 0 000 0101 求你-7的原码 1 000 0111 求34的原码 0 010 0010 求-29的原码 1 001 1101 求19的原码 1 001 0011 127 ~~-128 反码 正数:正数的反码等于原码 +3:0000 0011[原码] = 0000 0011[反码] 负数:符号位不变,其他位取反。 练习:求反码 -33:原码:1010 0001 反码:1101 1110 -37:原码:1010 0101 反码:1101 1010 -49:原码:1011 0001 反码:1100 1110 补码:计算机中数据以补码的形式存在,同样以补码的形式参与运算 正数求补码:原码 = 反码 = 补码 -5 = 1000 0101 [原码] 1111 0101 [反码] 负数求补码:首先求反码,在反码的基础上加1 练习: 求-34的补码: 原码:1010 0010 反码:1101 1101 补码:1101 1110 求-29的补码: 原码:1001 1011 反码: 1110 0100 补码:1110 0101 求-47的补码: 原码:1010 1111 反码:1101 0000 补码:1101 0001 补码:计算机中数据以补码的形式存在 为什么需要反码和补码? 反码:在计算器的设计时,只有加法器没有减法器,为了将减法转换成加法设计了反码。 但是反码,正负相加 0 的表示不唯一 补码:为了解决反码正负相加不唯一的情况,使用高位溢出。 补码练习计算: 45-19: 45:补码:0010 1101 -19补码:1001 0011 1110 1100 1110 1101 1110 1101 0001 1010 = 26 53-27: 53:补码:0011 0101 -27补码:1001 1011 1110 0100 1110 0101 1110 0101 0001 1010 =26 65-34: 65:补码:0100 0001 -34补码:1010 0010 1101 1101 1101 1110 1101 1110 0001 1111 = 31 将补码转换为原码 整数:不需要转 负数:求补码的补码 将负数的补码当做原码 计算规则:符号位不变,其余各位直接取反,然后加1 求原码:1101 1110 反码:1010 0001 补码:1010 0010[原码] 1001 1011 反码:1110 0100 补码:1110 0101[原码] 1110 0011 反码:1001 1100 补码:1001 1101[原码] 1001 0011 反码:1110 1100 补码:1110 1101[原码] 1111 1111 1000 0000[补码] = -128 反码:1000 0000 0111 1111 补码:1000 0000 1000 0000[原码] = -128