计算机中 位模式 是什么意思? 计算机以包含00的程序计数器启动,当机器停止时 寄存器6中的...

作者&投稿:壤匡 (若有异议请与网页底部的电邮联系)
关于这个问题,我所见过的最好的解释在《深入理解计算机系统》,原著名称是“Computer Systems A Programmer's Perspective”,作者是2位美国大学的教授:Randal E.Bryant和Davia O'Hallaron,这个书名是中译本的名字,由龚奕利、雷迎春2位翻译,当当网上有卖的,我才买了个把月。虽然中译本在网上有人说不怎么样,但我个人觉得这本书是让所有C语言爱好者从操作系统的角度深入了解C语言运作细节的好书。废话不多说了,下面我就把这本书里对原码和补码的解释抄过来,看完它你可以把之前学的原码和补码的概念扔掉了。什么取反再加1的,其实如果你看过我说的这本书,你就知道它是C语言中用来执行二进制补码非的一种方法,而不是用来把补码转换成原码的。 1、位模式:计算机中所有二进制的0、1代码所组成的数字串。比如8位的二进制数1000'0000,这个数按补码来解释就代表十进制数-128,而按原码来解释则代表128。原因?往下看。 PS:其实不论是什么进制的数字串都是可以视为此进制的一种位模式。 2、位模式的权:在位模式中,从右向左每位有一个固定的权值,相邻位之间权是一个固定的比例关系。说白了,每个位的权是以进制为底,与每位的序号有关的幂——序号从右向左,由0号开始编。 以十进制为例数101为例,个位的权是10的0次幂,即是1;十位的权是10的1次幂,即是10;百位则是10的2次幂即100,以后的类推就是了。 具体到二进制来说,位模式中各位的权从右向左依次是2的0、1、2、3...........的幂。强调一下,编号的方向是右到左的。 3、位模式的数学解释: 原码:所有位的权是正的,即是直接的2的0、1、2、3......的幂,然后把每位的值与权相乘,最后把乘积求和即是此二进制位模式所代表的数值。因此,对1000'0000按原码来解释是这样的:1x2的7次幂+0x2的6次幂+......+0x2的0次幂=128。如果全部8个位都是1,那么就是1x2的7次幂+1x2的6次幂+......+1x2的0次幂=2的8次幂-1=256-1=255。 补码:最左一位的权是负的,其它是正的。比如一共w位,则最左一位是-2^(w-1)〔呃,这个式子表示负的2的w-1次幂,是个负数的值。〕,然后余下的w-1个权都是正的。然后就是跟原码一样的东西:把每位的值与权相乘,最后把乘积求和即是此二进制位模式所代表的数值。因此,对于1000'0000的补码的解释是:1x(-2^7)+0x2^6+0x2^5+.....+0x2^0=-2^7=-128。 可以看到,这种解释比什么取反加1来得直接,而且不会有什么“取反加1后还是1000'0000”或者“-128应该是特殊规定的,就是用1000'0000表示的”等等之类的乱七八糟的问题了。而且更好的是,从这里我们可以方便地计算出在w位的时候,这个数字串的取值范围是多少——在不同的解释方式下,以及当出现截断、扩展时所表示的数值间有什么关系,当然还有更深入的应用,看《深入理解计算机系统》吧。======= 同志们,相信我吧,看《深入理解计算机系统》就得救,我也曾是面对-128而迷茫的人。虽然这本书有850多页,虽然看这本书要有一定的离散数学的基础知识,虽然我没学过离散数学也在看这本书,虽然我现在因这本书已有点走火入魔-_-||。 目前进度是浮点数这一节,强烈召唤此书同好出现,以解我的相思之苦........ (我有些地方不是看得很明白.......)

位:在计算机中,数据的最小单位是位,位是指一位二进制数,英文名称是bit

如何理解计算机中数据单位呢?
计算机数据的表示经常用到以下几个概念。在计算机内部,数据都是以二进制的形式存储和运算的。
(1)位二进制数据中的一个位(bit)简写为b,音译为比特,是计算机存储数据的最小单位。一个二进制位只能表示0或1两种状态,要表示更多的信息,就要把多个位组合成一个整体,一般以8位二进制组成一个基本单位。
(2)字节字节是计算机数据处理的最基本单位,并主要以字节为单位解释信息。字节(Byte)简记为B,规定一个字节为8位,即1B=8bit。每个字节由8个二进制位组成。一般情况下,一个ASCII码占用一个字节,一个汉字国际码占用两个字节。
(3)字
一个字通常由一个或若干个字节组成。字(Word)是计算机进行数据处理时,一次存取、加工和传送的数据长度。由于字长是计算机一次所能处理信息的实际位数,所以,它决定了计算机数据处理的速度,是衡量计算机性能的一个重要指标,字长越长,性能越好。
(4)数据的换算关系
1Byte=8bit,1KB=1024B,1MB=1024KB,1GB=1024MB。
计算机型号不同,其字长是不同的,常用的字长有8、16、32和64位。一般情况下,IBM PC/XT的字长为8位,80286微机字长为16位,80386/80486微机字长为32位,Pentium系列微机字长为64位。
如何表示正负和大小,在计算机中采用什么计数制,是学习计算机的一个重要问题。数据是计算机处理的对象
,在计算机内部,各种信息都必须通过数字化编码后才能进行存储和处理。
由于技术原因,计算机内部一律采用二进制,而人们在编程中经常使用十进制,有时为了方便还采用八进制和
十六进制。理解不同计数制及其相互转换是非常重要的。

楼上很专业

什么是位模式~

关于这个问题,我所见过的最好的解释在《深入理解计算机系统》,原著名称是“Computer Systems A Programmer's Perspective”,作者是2位美国大学的教授:Randal E.Bryant和Davia O'Hallaron,这个书名是中译本的名字,由龚奕利、雷迎春2位翻译,当当网上有卖的,我才买了个把月。虽然中译本在网上有人说不怎么样,但我个人觉得这本书是让所有C语言爱好者从操作系统的角度深入了解C语言运作细节的好书。废话不多说了,下面我就把这本书里对原码和补码的解释抄过来,看完它你可以把之前学的原码和补码的概念扔掉了。什么取反再加1的,其实如果你看过我说的这本书,你就知道它是C语言中用来执行二进制补码非的一种方法,而不是用来把补码转换成原码的。 1、位模式:计算机中所有二进制的0、1代码所组成的数字串。比如8位的二进制数1000'0000,这个数按补码来解释就代表十进制数-128,而按原码来解释则代表128。原因?往下看。 PS:其实不论是什么进制的数字串都是可以视为此进制的一种位模式。 2、位模式的权:在位模式中,从右向左每位有一个固定的权值,相邻位之间权是一个固定的比例关系。说白了,每个位的权是以进制为底,与每位的序号有关的幂——序号从右向左,由0号开始编。 以十进制为例数101为例,个位的权是10的0次幂,即是1;十位的权是10的1次幂,即是10;百位则是10的2次幂即100,以后的类推就是了。 具体到二进制来说,位模式中各位的权从右向左依次是2的0、1、2、3...........的幂。强调一下,编号的方向是右到左的。 3、位模式的数学解释: 原码:所有位的权是正的,即是直接的2的0、1、2、3......的幂,然后把每位的值与权相乘,最后把乘积求和即是此二进制位模式所代表的数值。因此,对1000'0000按原码来解释是这样的:1x2的7次幂+0x2的6次幂+......+0x2的0次幂=128。如果全部8个位都是1,那么就是1x2的7次幂+1x2的6次幂+......+1x2的0次幂=2的8次幂-1=256-1=255。 补码:最左一位的权是负的,其它是正的。比如一共w位,则最左一位是-2^(w-1)〔呃,这个式子表示负的2的w-1次幂,是个负数的值。〕,然后余下的w-1个权都是正的。然后就是跟原码一样的东西:把每位的值与权相乘,最后把乘积求和即是此二进制位模式所代表的数值。因此,对于1000'0000的补码的解释是:1x(-2^7)+0x2^6+0x2^5+.....+0x2^0=-2^7=-128。 可以看到,这种解释比什么取反加1来得直接,而且不会有什么“取反加1后还是1000'0000”或者“-128应该是特殊规定的,就是用1000'0000表示的”等等之类的乱七八糟的问题了。而且更好的是,从这里我们可以方便地计算出在w位的时候,这个数字串的取值范围是多少——在不同的解释方式下,以及当出现截断、扩展时所表示的数值间有什么关系,当然还有更深入的应用,看《深入理解计算机系统》吧。======= 同志们,相信我吧,看《深入理解计算机系统》就得救,我也曾是面对-128而迷茫的人。虽然这本书有850多页,虽然看这本书要有一定的离散数学的基础知识,虽然我没学过离散数学也在看这本书,虽然我现在因这本书已有点走火入魔-_-||。 目前进度是浮点数这一节,强烈召唤此书同好出现,以解我的相思之苦........ (我有些地方不是看得很明白.......)

 21世纪,PLC会有更大的发展。从技术上看,计算机技术的新成果会更多地应用于可编程控制器的设计和制造上,会有运算速度更快、存储容量更大、智能更强的品种出现;从产品规模上看,会进一步向超小型及超大型方向发展;从产品的配套性上看,产品的品种会更丰富、规格更齐全,完美的人机界面、完备的通信设备会更好地适应各种工业控制场合的需求;从市场上看,各国各自生产多品种产品的情况会随着国际竞争的加剧而打破,会出现少数几个品牌垄断国际市场的局面,会出现国际通用的编程语言;从网络的发展情况来看,可编程控制器和其它工业控制计算机组网构成大型的控制系统是可编程控制器技术的发展方向。目前的计算机集散控制系统DCS(Distributed Control System)中已有大量的可编程控制器应用。伴随着计算机网络的发展,可编程控制器作为自动化控制网络和国际通用网络的重要组成部分,将在工业及工业以外的众多领域发挥越来越大的作用。