计算机进制数,有符号二进制数的表示方法及二进制编码 | 您所在的位置:网站首页 › 576的二进制是多少 › 计算机进制数,有符号二进制数的表示方法及二进制编码 |
目录 一、计算机进制数 二、有符号二进制数的表示方法 三、二进制数编码 BCD码 ASCII码 计算机数据基本单位 一、bit(位) 二、Byte(字节) 三、字 四、字长 一、计算机进制数1) 十进制ND 十个数码:0~9、逢十进一 用于计算机输入输出,人机交互 (2)二进制NB 两个数码:0、1, 逢二进一 机器中的数据形式 (3)十六进制NH 十六个数码:0~9, A~F, 逢十六进一 用于表示二进制数 不同进位制数以下标或后缀区别,十进制数可不带下标 如:101=101D,101B=101B,101H=101H 十进制作为人类较为常用的进制,二进制则是计算机的数据形式,十六进制只跟有利于二进制表示组的形式 数制转化可学习:http://t.csdnimg.cn/MPhtr 可通过计算机进行数制转化 二、有符号二进制数的表示方法8位的微型计算机,从0000 0000B到1111 1111B,表示的无符号数值从0到255。 8位微型计算机中约定,符号“+”、“-”要用1位二进制数表示。最高位D7表示符号,其他7位表示数值。 为什么需要原码,反码,补码,只要原码不行吗? 因为在计算机中,二进制的运算对于正数之间不会出现什么问题,但是当出现负数的运算的时候就会有问题 原码: 符号位和数字实际值的结合。正数是数值本身,符号位为0;负数是数值本身,符号位为1。8位二进制数的表示范围是[-127, 127]。 反码: 正数是数值本身,符号位为0;负数的数值部分是正数表示的基础上对各个位取反,符号位为1。8位二进制数的表示范围是[-127, 127]。 补码: 正数是数值本身,符号位为0,负数的数值部分是在正数表示的基础上对各个位取反后加1,符号位为1。8位二进制数的表示范围是[-128, 127]。 正数的补码:等于原码, 负数的补码:反码 + 1。 8位二进制数表示无符号数和有符号数的范围 机器数 无符号数 原码 反码 补码 00000000 0 +0 +0 +0 00000001 1 +1 +1 +1 . . . . . 01111111 127 +127 +127 +127 10000000 128 -0 -127 -128 10000001 129 -1 -126 -127 . . . . . . . . . . 11111110 254 -126 -1 -2 11111111 255 -127 -0 -1 溢出问题: 设[X]补=40H,[Y]补=41H,此时,X=+64,Y=+65,直接相加后结果为+129。 但如果用补码相加,[X]补+[Y]补=81H=1000 0001B=-127。 为什么会发生溢出现象? 关于溢出现象,它主要发生在数值超过一个数据类型能够存放的最大范围时。当使用补码表示数值时,如果两个数的和超出了该数据类型所能表示的范围,就会发生溢出。此外,符号位溢出会导致数的正负发生改变,而最高位的溢出则会导致最高位丢失。 例如,在8位二进制数中,最大的正数是127(0111 1111),最小的负数是-128(1000 0000)。如果我们尝试将127和1相加,结果应该是128,但8位二进制数无法表示128,因此会发生溢出,得到的结果是-128(1000 0000)。 因此,原码、反码和补码之所以会发生溢出现象,主要是因为数值的表示受到了数据类型的范围限制。当计算结果超出这个范围时,就会发生溢出,导致结果不准确。为了避免这种情况,程序员需要确保在编写代码时考虑到数据类型的范围,并采取适当的措施来处理可能的溢出情况。 如何判断是否溢出? 假设参加相加的两个数及结果都用补码,且将结果的进位位丢失,则有: ①两个正数相加得负数,有正溢出; ②两个负数相加得正数,有负溢出; 有三种情况下无溢出: ① 两个正数相加得正数; ② 两个负数相加得负数; ③ 一个正数与一个负数相加。 可学习:http://t.csdnimg.cn/ove7E 三、二进制数编码 BCD码什么是BCD码? BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。 BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码,其中最常使用的为8421码,下面所述的都是基于8421码。 BCD码的优点 相对浮点数,采样BCD码可保持数据精度,又可以免去CPU计算浮点所消耗的时间。 相对浮点数,BCD码使用二进制编码表示十进制编码,使得数字可读性更好。如数字1234.56,使用BCD码表示为0x123456。 相对字符串,BCD编码效率更高,如数字1234.56,使用字符串需7个字节,采用BCD只需3字节。 BCD码应用 数据传输编码。 仪器设备显示。 ASCII码什么是ASCII码? ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。 ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。其中: 0~31及127(共33个)是控制字符或通信专用字符(如换行、回车、删除等)。32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。同时还要注意,ASCII码只包含英文字符,并不包含中文字符。如果要表示中文字符,需要使用其他编码系统,如GB2312、GBK、GB18030或Unicode等。 ASCII码应用 文本处理 网络通信 数据存储 计算机数据基本单位 一、bit(位)位是最基本的概念,它的英文名字叫(bit),表示二进制位。 Bit:音译为“比特”,简称“b”,指二进制位,由0,1组成。 是计算机内存中最小的单位,也是最基本的单位 注意:位习惯上用小写的b表示,字节习惯上用大写的B表示。 二、Byte(字节)Byte:译为“字节”,简称“B”,当记忆体容量过大时,Byte 这个单位就不够用,因此就有KB\MB\GB等出现。 是计算机系统中最小的存储单位 1 Byte 由 8 bits 组成 三、字字(Word)代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位。 一个字通常由一个或多个(一般是字节的整数位)字节构成。 对于32位计算机与64位计算机,字的大小往往不同。 32位计算机:1字=32位=4字节,64位计算机:1字=64位=8字节 四、字长字长是计算机的每个字所包含的位数,通俗的讲,字长就是字的长度,这里的长度用位来表示。 根据计算机的不同,字长有固定的和可变的两种。 固定字长:即字长在什么情况都是固定不变的; 可变字长:即在一定范围内,其长度是可变的。 单位换算 1字节(Byte)=8位(bit) 1 KB = 1024 B = 2^10 B 1 MB = 1024 KB = 2^20 B 1 GB = 1024 MB = 2^30 B 1 TB = 1024 GB = 2^40 B ASCIIS码: 1个英文字母(不分大小写)= 1个字节的空间1个中文汉字 = 2个字节的空间1个ASCII码 = 一个字节 |
CopyRight 2018-2019 实验室设备网 版权所有 |