昆明市城市建设档案馆网站,阳江市企业网站优化,有帮忙做ppt的网站或人吗,怎么地wordpress文章目录 计算机的存储方式概述原码原码的概念反码补码补码的意义数值溢出示例1#xff1a;示例2#xff1a; 计算机的存储方式
概述 当前的计算机系统使用的基本上是二进制系统#xff0c;数据在计算机中主要是以补码的形式存储的。 术语描述bit(比特)一个二进制代表一位示例2 计算机的存储方式
概述 当前的计算机系统使用的基本上是二进制系统数据在计算机中主要是以补码的形式存储的。 术语描述bit(比特)一个二进制代表一位一个位只能表示0或1两种状态。数据传输是习惯以“位”bit为单位。Byte(字节)一个字节为8个二进制称为8位计算机中存储的最小单位是字节。数据存储是习惯以“字节”Byte为单位。WORD(双字节)2个字节16位DWORD两个WORD4个字节32位1b1bit1位1B1Byte,1字节8位1k1K10241M(1兆)1024k, 1024*10241G1024M1T1024G1Kb(千位)1024bit,1024位1KB(千字节)1024Byte1024字节1Mb(兆位)1024Kb 1024 * 1024bit1MB(兆字节)1024KB 1024 * 1024Byte
原码
原码的概念 数据原始的二进制码 一个数的原码(原始的二进制码)有如下特点
最高位做为符号位0表示正,为1表示负其它数值部分就是数值本身绝对值的二进制数负数的原码是在其绝对值的基础上最高位变为1
下面数值以1字节的大小描述下面数值以1字节的大小描述
十进制数原码150000 1111-151000 111100000 0000-01000 0000
举例
char ch 123;原码 0111 1011 -123原码为 1111 1011
负数的原码是在其绝对值的基础上最高位变为1
原码表示法简单易懂与带符号数本身转换方便只要符号还原即可但当两个正数相减或不同符号数相加时必须比较两个数哪个绝对值大才能决定谁减谁才能确定结果是正还是负所以原码不便于加减运算。
反码
反码运算也不方便通常用来作为求补码的中间过渡。
对于正数反码与原码相同对于负数符号位不变其它部分取反(1变0,0变1)
举例
char ch 123;
123的原码 0111 1011反码 0111 1011-123的原码 1111 1011反码 1000 0100
补码
在计算机系统中数值一律用补码来存储。
补码特点
对于正数原码、反码、补码相同对于负数其补码为它的反码加1补码符号位不动其他位取反最后整个数加1得到原码
char ch 123;
原码 0111 1011
反码 0111 1011
补码 0111 1011负数 -123
原码 1111 1011 对于负数在原码的基础上符号位变为1其他位不变
反码 1000 0100 负数的反码符号位不变其他位取反
补码 1000 0101 负数的补码符号位不变在反码的基础上1;
思考如果一个数的反码为 1111 1111那这个数的补码为 补码的意义
用8位二进制数表示 0 和 -0
十进制数原码反码补码00000 0000000 00000000 0000-01000 00001111 111110000 0000
不管以原码还是反码的存储方式0 也有两种表示方式
使用补码的方式存储由于只用8位二进制数表示-0 的补码最高位1丢弃结果也是 0000 0000
在计算机中数值一律用补码来存储的原因是
统一了0的编码将符号位和其他位统一处理将减法运算变为加法运算两个用补码表示的数相加时如果最高位符号位有进位则被舍弃
数值溢出
有符号的数据溢出会导致 数据正负号发生变化
无符号的数据溢出会导致最大值变成最小值最小值变成最大值
示例1
有符号的数据溢出会导致 数据正负号发生变化char ch 127;
ch 2;
补码相加 0111 11110000 00101000 0001
结果为 1000 0001 负数的反码推补码在反码的基础上1)负数的补码推反码在补码的基础上-1反码 1000 0000 负数的反码是在原码的基础上符号位不变其他位取反 原码 1111 1111 除了符号位其他都是数据位
ch的结果-127 示例2
unsigned char ch 255;
ch ch2;255 原码: 1111 1111 (正数的原码反码补码相同)
2 原码: 0000 0010补码相加的结果: 10000 0001
最高位有进位就舍弃 0000 0001
ch的 结果1