欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

计算机基础

程序员文章站 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