计算机基础
程序员文章站
2024-01-30 23:31:22
...
计算机编码
计算机常用编码
常用编码介绍
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
下一篇: 微机原理关于8253计数初值