双字、字、字节和位的关系总结
4.位 字节 字 双字寻址概念
位字节字双字寻址概念
现在把存储区比作一个大房间,存储分区比作柜子,柜子编号有V柜,I柜,Q 柜,M柜;每个柜子都有256个(0-255)抽屉,每个抽屉相当于一个字节B,每个抽屉有8个格子(0-7),相当于位,每个抽屉的状态有两种状态,有(1)和无(0)。
寻址:I0.0表示位寻址;IB0 表示字节寻址;IW0表示字寻址;ID0表示双字寻址。
I0.0代表一个位,最小的单元格;IB0代表一个字节,由8个字节组成;IW0代表字寻址,由2个字节组成,16个为组成;ID0代表双字寻址,由2个字组成,4个字节组成,32个位组成。
IB0=2 I柜子0号抽屉的状态是:00000010 相当于I0.1=1状态,其他都为0.
IB0=3 I柜子0号抽屉的状态是:00000011 相当于I0.0=1 I0.1=1状态,其他都为0.
以字节为例:
假如VB100等于2,那VW100等于512,VD100等于33554432(都是十进制表示)
因为在PLC内部,字和双字分别是以2个和4个字节组成,而且地址低的字节为字或双字的高位字节。
以二进制的形式表示
VB100=00000010=2
VB100=1111111=255
VW100=00000010(VB101) 00000000(VB100)=512
VD100=00000010(VB103)00000000(VB102)00000000(VB101)00000000(VB100)=33554432。
西门子基本数据类型
基本数据类型
基本数据类型:包括位、位序列、整数、浮点数、日期时间。
(常见的)
1、位字节字双字
2、数据类型
3 浮点数
实(或浮点)数以32 位单精度数(Real) 或64 位双精度数(LReal) 表示。
比如模拟量模块采集的温度压力等
4 时间日期数据类型
TIME 数据作为有符号双整数存储,基本单位为毫秒。
存储的数值是多少,就代表有多少ms。
编辑时可以选择性使用日期(d)、小时(h)、分钟(m)、秒(s) 和毫秒(ms) 作为单位
DATE 数据作为无符号整数值存储,被解释为添加到基础日期1990 年1 月1 日的天数,用以获取指定日期。
编辑器格式必须指定年、月和日。
TOD (TIME_OF_DAY) 数据作为无符号双整数值存储,被解释为自指定日期的凌晨算起的毫秒数(凌晨= 0 ms)。
必须指定小时(24 小时/天)、分钟和秒。
西门子PLC的寻址方式
按位寻址:首先有一个存储器标识符用来区分当前使用PLC哪一种类型软元件,往下一位代表具体用的是哪个字节,一个字节有8个位,最后一位数字表示具体的哪个位,举例说明,I0.0首先I代表是用的PLC I 存储区,0代表是0字节,再往下的0代表的就是0字节具体第0个位;一个字节8个位,最大的位数就是0.7,没有0.8和0.9,下一个字节就是从1.0开始。
接下来再看一下按字节,字,双字寻址:如下图所示:学会按位寻址以后,对于按字节、按字以及双字寻址都是一样,首先:一个字节其实就是8个位,一个字就是16个位,一个双字就是32个位,可以理解为谁包含了谁;再看格式书写,第一位是存储器的标识符,第二位变为寻址方式的标识符,如B代表是按字节寻址,W代表的是按字寻址,D代表的是按双字寻址,最后一位代表的就是字节起始地址;举例说明VD0,V代表当前用的是PLC的V存储器,D代表的是按双字寻址,最后一位0代表被占用的起始字节,双字包含32个位,它共占用了从VB0开始到VB3这四个存储字节。
假设写的是VD1,那么它占用的起始字节就是从1开始,一共占用了VB1 VB2 VB3 VB4四个存储区。
1中VD0由VBO、VB1、VB2、VB3组成,它包括VWO、VBO、V0.0;而VW0由VB0和VB1组成,它包括了VB0和V0.0;而VB0由VB0.0~VB0.7这八个位组成,它包括V0.0。
建议您把西门子的200基础知识好好看看,这些都是很有用的2、四者的寻址方式不同,V0.0是按位寻址,VB0是按字节寻址,VW0是按字寻址,VD0是按双字寻址。
VD0由VBO、VB1、VB2、VB3组成,它包括VWO、VBO、V0.0; VW0由VB0和VB1组成,它包括了VB0和V0.0;VB0由VB0.0~VB0.7这八个位组成,它包括V0.0。
3、1字节=8个二进制位(简称位) 1字=2字节=16位 1双字=2字=4字节=32位4、字由一串字节组成,字节由8个位组成,双字节就是连续的16个位了如有侵权请联系告知删除,感谢你们的配合!。
字和字节和位的关系
1、位(bit)来自英文bit,音译为“比特”,表示二进制位。
位是计算机内部数据储存的最小单位,是一个8位二进制数。
一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态(23)……。
2、字节(byte)字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。
字节是计算机中数据处理的基本单位。
计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。
八位二进制数最小为00000000,最大为;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
3、字计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。
一个字通常由一个或多个(一般是字节的整数位)字节构成。
例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。
计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。
另一种说法:字在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称宇。
字通常分为若干个字节(每个字节一般是8位)。
在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。
字的长度用位数来表示。
在计算机的运算器、控制器中,通常都是以字为单位进行传送的。
宇出现在不问的地址其含义是不相同。
例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。
在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字中二进制位数的长度,称为字长。
一个字由若干个字节组成,不同的计算机系统的字长是不同的,常见的有8位、16位、32位、64位等,字长越长,计算机一次处理的信息位就越多,精度就越高,字长是计算机性能的一个重要指标。
目前主流微机都是32位机。
注意字与字长的区别,字是单位,而字长是指标,指标需要用单位去衡量。
1.2位、字节、半字、字的概念和内存位宽
在所有的计算机、所有的机器中(不管是32位系统还是16位系统还是以后的64位系统),位永远都是1bit
ห้องสมุดไป่ตู้ 字节永远都是8bit
1.2.5.字和半字
出现过很多16位、32位、64位的系统,被混乱的定义过的。
1.2.2.内存的逻辑抽象图
从逻辑角度来将,内存实际上是由无限多个内存单元格组成的,每个单元格有一个固定的地址
叫内存地址,这个内存地址和这个内存单元格唯一对应且永久绑定。
大楼类比,房间号是地址,内存中存储的内容就好像住在房间中的人一样。
逻辑上来说,内存可以无限大,但是现实中实际的内存大小是有限制的,譬如32位的
1.2位、字节、半字、字的概念和内存位宽
从逻辑上对内存有一个认识,有一个模型的概念
1.2.1.什么是内存
硬件:内存条(SRAM和DRAM——DRAM有好多代,譬如SDRAM,后来的DDR1、DDR2、DDR3。。。LPDDR--工作电压不一样
DRAM(Dynamic Random Access Memory)动态随机访问内存
并联后即使8位内存芯片也可以做出16位或32位的硬件内存。
我们默认的内存都是32位的
逻辑:内存位宽在逻辑上是任意的,从逻辑角度来讲内存位宽是多少,我们直接操作就好。但是操作不是纯逻辑而是需要硬件去执行
的,所以我们的操作都是受限于硬件的特性的。
1.2.4.位和字节
建议大家对字、半字、双字的概念不要详细区分,依赖于平台
编程的时候基本上用不到这个概念,但是在文档中还是存在的,如果不区分容易造成误解。
S7200PLC软元件
本节课你将会学习到以下内容:
1、西门子S7-200 有哪些数据存储类型? 2、内部元件是怎么样编址和寻址的? 3、常见元件有哪些,有什么功能?
一. 数据存储类型
1. 数据的长度
在计算机中使用的都是二进制数,其最基本的存储 单位是位(bit)。常用的存储单位还有字节(Byte),字 (Word),双字(Double word)把位、字节、字和 双字占用的连续位数称为长度。换算关系如下:
④输入继电器的特点
与数字量输入点对应的输入映象寄存器可称为输入继 电器。其特点是:
1)输入继电器是PLC用来接收用户输入设备发来的输 入信号。
2)输入继电器线圈由外部输入信号所驱动,只有当外 部信号接通时,对应的输入继电器才得电,不能用 指令来驱动。
3)在程序中不能出现输入继电器的线圈,只能出现输 入继电器的触点。
4. 双字编址
双字编址的指定方式为: (区域标志符)D(起始字节号)
且最高有效字节为起始字节。 例如VD0表示由VB0到VB3这4字节组成的双字。
三. 寻址方式
1. 直接寻址
直接寻址是在指令中直接使用存储器或寄存器的 元件名称(区域标志)和地址编号,直接到指定 的区域读取或写入数据。有按位、字节、字、双 字的寻址方式。
①符号表示 ②编址方式 按位编址 按字节编址 按字编址 按双字编址
字母 I
I0.0~I15.7 IB0~IB15 IW0~IW14 ID0~ID12
③使用方法
每一个数字量的输入点,对应着输入映象寄存器的 一位。 比如S7-200CPU224型PLC输入点数是14点。则对应 的输入映象寄存器的地址范围是I0.0~I1.5 I1.6 I1.7不使用。 若用整个字节未使用则可充当内部标志位。 如:IB3~IB15
S7-1200 PLC的基本数据类型,你了解多少?
S7-1200 PLC的基本数据类型,你了解多少?如果有了解过S7-1200 PLC的学员,相信应该知道S7-1200 PLC所支持的数据类型是远远多于S7-200/200 SMART PLC的吧?今天就给大家介绍一下S7-1200 PLC的数据类型。
除了基本数据类型之外,还支持一些复杂的数据类型,包括结构数据类型Struct、PLC数据类型UDT、数组Array、系统数据类型SDT、硬件数据类型DB_ANY、参数数据类型Variant、String和Char数据类型、WString和WChar数据类型、DTL数据类型等。
就基本数据类型而言,S7-1200 PLC与S7-200/200 SMART PLC的也有不同,这篇文件中我们先介绍基本数据类型(复杂数据类型下一篇中介绍),基本数据类型包括位、字节、字、双字、整数、浮点数、日期时间,此外字符(String和Char 数据类型、WString和WChar数据类型)也属于基本数据类型。
1、位、字节、字和双字位为Bool,字节为Byte,字为Word,双字为DWord。
这些数据类型与S7-200/200 SMART PLC都是一样的。
这里便不再多说,具体可看下表。
2、整数数据类型对于S7-200/200 SMART PLC整数数据类型只有INT整数和DINT双整数这两种,而S7-1200 PLC支持6种,USInt、UInt、UDInt是无符号数,SInt、Int、DInt是有符号数,他们的数值范围有所不同。
3、浮点数数据类型在S7-1200PLC中,浮点数以32 位单精度数(Real) 或64 位双精度数(LReal) 表示。
但是像S7-200/200 SMART PLC中就没有LReal的数据类型。
4、时间和日期数据类型时间和日期数据类型包括Time、Date、Time_of_Day这三种。
S7-200/200 SMART PLC是不支持这几种数据类型的,但是S7-1200PLC可以支持这几种数据类型。
字节、字、双字,整数,双整数和浮点数详解
字节、字、双字,整数,双整数和浮点数详解1.引言1.1 概述在计算机科学和编程领域,字节、字、双字、整数、双整数和浮点数是非常重要的概念和数据类型。
它们在存储和处理数据时起着关键作用。
本文将对这些概念和数据类型进行详细解释和讨论。
首先,字节是计算机存储和处理数据的基本单位之一。
一个字节由8位二进制数字组成,可以表示256种不同的值。
字节一般用于存储和表示字符,例如ASCII码中的每个字符都用一个字节表示。
接下来,字是字节的扩展,通常由两个字节组成。
字是更大的数据单元,可以表示更多的不同值。
字通常用于存储和表示较大的字符集,如Unicode编码中的字符。
双字是对字的一种拓展,由四个字节组成。
双字可以表示更大范围的数据,通常用于存储和处理较大的整数和浮点数。
然后,整数是一种完整的数值数据类型,用于表示不带小数部分的数值。
整数可以是负数、零或正数,其取值范围取决于所使用的字节数。
整数常用于计算、逻辑运算和数据存储。
双整数是对整数的一种拓展,由两个整数组成。
双整数可以表示更大范围的整数值,通常用于需要更精确的计算和表示的情况。
最后,浮点数是一种带有小数部分的数值数据类型。
浮点数通常由双字表示,其中一部分用于存储小数部分,另一部分用于存储指数部分。
浮点数常用于科学计算、图形处理和物理模拟等领域。
本文将详细探讨字节、字、双字、整数、双整数和浮点数的定义、特点、应用、表示方式、运算规则和数据范围等方面内容。
通过深入理解这些概念和数据类型,我们可以更好地理解计算机的内部处理和存储方式,并在编程中更加灵活和高效地处理数据。
1.2文章结构文章结构部分的内容可以写成以下方式:1.2 文章结构本文将详细介绍字节、字、双字、整数、双整数和浮点数的概念以及其应用。
文章结构如下:2.正文2.1 字节2.1.1 定义本节将介绍字节的定义,以及字节在计算机中的作用和意义。
2.1.2 应用本节将探讨字节在不同应用场景下的具体应用,例如在存储和传输数据中的作用。
双字,字节转换题
双字,字节转换题在计算机领域中,我们经常会遇到关于数据存储和传输的问题。
其中,一个常见的问题就是字节与双字之间的转换。
本文将为您介绍这个问题,并提供一些方便快捷的方法。
首先,我们来了解一下字节和双字的概念。
字节是计算机中最小的存储单位,通常由8个比特(bit)组成。
而双字则由两个字节构成,即16个比特。
在计算机内存和数据传输过程中,字节和双字的转换非常常见。
在将字节转换为双字时,我们可以使用位运算来实现。
具体操作如下:1. 首先,将字节的高字节和低字节分别提取出来。
2. 然后,将高字节左移8位,再与低字节进行按位或操作。
下面是一个示例:假设我们有一个字节:10101010我们可以将其转换为双字的步骤如下:1. 首先,提取出高字节和低字节:1010和10102. 然后,将高字节左移8位,得到:1010000000003. 最后,将上述结果与低字节进行按位或操作,得到最终的双字:101010101010同样,我们也可以将双字转换为字节。
具体操作如下:1. 首先,将双字的高字节和低字节分别提取出来。
2. 然后,将高字节右移8位,即将高字节的前8位去除。
3. 最后,分别得到高字节和低字节的值。
下面是一个示例:假设我们有一个双字:1100110011001100我们可以将其转换为字节的步骤如下:1. 首先,提取出高字节和低字节:11001100和110011002. 然后,将高字节右移8位,得到:0000000011003. 最后,得到高字节和低字节的值分别为:00000000和11001100通过以上的方法,我们可以很方便地将字节和双字进行转换,从而满足不同的计算需求。
总结起来,字节和双字之间的转换是计算机中常见的操作。
通过位运算,我们可以方便地进行转换,并满足不同的计算需求。
熟练掌握这些转换方法,对于理解和应用计算机技术都非常有帮助。
希望本文的内容能对您有所帮助,谢谢阅读!。
西门子S7-300系列PLC基础知识-地址分配
西门子S7-300系列PLC基础知识-地址分配当物理模块安装完毕后,要对信号模块SM上的每一个信号通道分配一个物理地址,从而使用户程序能够识别这些这些通道。
首先要清楚以下几个概念:位,Bit字节,Byte,1Byte=8Bit字,Word,1个字等于2个字节,等于16位双字,D,等于2个字,4个字节,32位1、数字量的地址每个位BIT可以表示一个数字I/O点。
数字量以字节为单位(包括8个位),每个字节可表示8个I/O点。
数字量每个槽(模块)分为4个字节Byte。
所以一个槽可以表示32个I/O通道。
比如Q4.2,Q表示输出区域,4表示第4个字节,2表示第4个字节中的第3位。
数字量的地址分配如下图。
如果一个槽内只有一个16点的I/O模块,则地址只占用0.0至1.7,2.0至3.7不使用。
2、模拟量的地址每个字W可以表示一个模拟量通道。
每个槽(模块)分为16个字节(16Byte),即8个通道。
比如PIW256,PI表示外设输入,W表示一个字W的长度,256表示256和257两个字节组成的单字PIW256,256表示首地址。
模拟量地址分配见下图:注意:-以上地址都是从第四个槽开始,前3个槽预留给PS,CPU,IM。
-由于一个模拟通道是由一个单字W组成,所以PIW257,IW273等等地址是不存在的,如果在编程中出现,会导致出错,这一点是初学者常犯的错误。
-当数字量和模拟量插槽混合使用的时候,仍然可以按照上面的原则分配。
只不过会出现很多未被使用的地址。
如下图所示:存贮器表示方法主标识符+辅助标识符+地址主标识符有:输入映像区I、输出映像区Q、外设输入PI、外设输出PQ、存储区域映像区M、数据表DB、DI、定时器T、计数器C、本地数据L、系统保留区。
辅助标识符有:X(省略)位、B字节、W字、D双字。
PLC中的数据类型有哪些?
PLC 的数据类型在工业自动化的控制系统中,PLC (可编程逻辑控制器)是一种非常常见的控制器,比较有名的PLC 品牌,国外有西门子、三菱、欧姆龙、施耐德等,国内有信捷、台达等。
PLC 作为工业现场使用的控制器,具有安全稳定的特性,适用于工业现场复杂的生产环境以及对于通讯的实时性的高要求。
对于工厂的制造设备来说,数据的传输,是非常重要的,一般来说,一个完整的工厂内,充满了各种传感器、仪器仪表、执行器、驱动器、电机等元器件,它们之间通过电线或总线连接,将现场设备产生的实时生产数据,传送到PLC 中,经过PLC 中的程序的处理,最终输出到现场的各个执行器,形成了一个周而复始的自动化过程。
如果我们要使用PLC 来进行编程,首先就要了解PLC 的可使用的数据类型有哪些? 我们以西门子S7-1200系列的PLC 为例,来进行说明。
(西门子的PLC 市场占有率在所以PLC 品牌中居首位,是十分具有代表性的品牌)我们先来看1200的基本数据类型,包括:1、位和位序列:位和位序列主要包括以下类型:位(Bit )、字节(Byte )、字(Word )、双字(DWORD ),西门子官方将这四类综合在一起,是因为这四个数据类型都是由位组成。
首先来说“位”,即一个Bit ,也就是布尔量(BOOL ),其数值为二进制的0或者1,其详细信息可见下图(1),众所周知,计算机是一个二进制的系统,这是所有计算的基础,无论什么数据,最终都会转化为二进制,才能被计算机的芯片识别,PLC 也是一种计算机,所以,也是以二进制为基础的。
位数据可以表示一个传感器的状态,比如0表示无信号,1 表示有信号,也可以作为输出状态,比如0表示电磁阀或电机无输出,1表示阀体动作或电机运行,等等,在PLC 中,特别是梯形图逻辑中,位数据是最常用的一种数据类型,尽管每个位只能表示两个状态,但当多个位逻辑组合在一起,就可以形成一个复杂的逻辑条件,从而实现复杂的动作控制。
位(bit)、字节(Byte)、字(Word)、双字(Dword)之间的关系
b是计算机信息ห้องสมุดไป่ตู้术用于计量存储容量的一种计量单位通常情况下一字节等于八位也就是
位( bit)、字节( Byte)、字( Word)、双字( Dword)之间 的关系
位(bit): bit(简写:b),是计算机数据存储最小的单位,二进制中,0或者1就是一个位(比特位)bit。 字节: Byte(简写:B),是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也就是 :1Byte = 8bit = 1B = 8b。 计算机CPU的位数指的就是CPU一次能处理的最大位数,如32位计算机的CPU一次最多能处理32位数据。 PLC中常用到的 字 Word 及双字 Dword 的关系 一个字占用2个字节 即 1 Word = 2 个字节 Byte = 16 位 bit 一个双字 Dword 等于2个 字 Word 即 1 DWord = 2个字 Word = 4 个字节 Byte = 32 位 bit
plc字节高低位 -回复
plc字节高低位-回复PLC(可编程逻辑控制器)是一种常用于工业自动化控制系统的设备。
在PLC中,数据是以位、字或双字的形式进行处理和传输。
字节高低位是指字节中位的排列顺序,它在PLC中起着至关重要的作用。
本文将一步一步回答关于PLC字节高低位的问题,并解释其重要性以及如何正确配置PLC 以实现最佳性能。
首先,让我们来了解一下PLC中数据的基本组织方式。
在PLC中,数据是以二进制形式进行表示,每个位(bit)可以为0或1。
多个位组合在一起形成字节(byte),通常一个字节由8个位组成。
字节是PLC中数据处理和传输的基本单位。
然而,在PLC中,字节的排列方式有两种不同的方法:高位在前和低位在前。
高位在前指的是字节的最高有效位(Most Significant Bit,MSB)排在前面,而低位在前指的是最低有效位(Least Significant Bit,LSB)排在前面。
这个排列方式取决于PLC的硬件设计和配置。
为了更好地理解字节高低位的重要性,让我们考虑一个示例,假设我们需要控制一个工业设备的动作。
我们可以将不同的控制信号定义为PLC中的位,然后将这些位组合成字节,以实现更复杂的控制功能。
现在假设我们要控制一个电机的启停动作。
我们可以用一个位来表示电机的启停信号,例如0表示停止,1表示运行。
假设我们将这个位定义为字节中的最低有效位。
如果我们将该字节定义为低位在前方式,那么字节的二进制表示将是“00000001”,其中最低有效位为1,表示电机正在运行。
然而,如果我们将该字节定义为高位在前方式,那么字节的二进制表示将是“10000000”,其中最高有效位为1,表示电机正在运行。
这两种方式的定义将直接影响到PLC的编程和控制逻辑。
那么该如何正确配置PLC的字节高低位呢?首先,我们需要根据PLC的硬件设计和配置确定字节的高低位排列方式。
这通常可以在PLC的技术手册或用户手册中找到。
如果没有明确的说明,推荐的做法是遵循PLC制造商的建议,并与其技术支持团队进行咨询。
存储器的位 字节 字双字 数据 概念
W0
W3 dw4
BYTE8 BYTE9 ......
BYTE0 BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8 BYTE9 ......
bit15 bit7 bit7 bit15 bit7 bit23 bit15 bit7 bit7 bit7
bit14 bit6 bit6 bit14 bit6 bit22 bit14 bit6 bit6 bit6
• 分类: • 源操作数---要读取的数据 • 目的操作数---要写的数据
基本概念
• 操作数按照形式分类 • 分类: • 立即操作数:指令要操作的数据以常量的形式出现在指令中,称
为立即数,它只能作为源操作数。
• 存储器操作数:指令要操作的数据存放在CPU中的存储器里,指 令中给出寄存器名即可。
PLC编址寻址
0
0
1
1
1
0
1
BYTE9 1
0
0
0
1
1
0
1
......
存储器的分类
• PLC使用以下物理存储器:
• 1、随机存取存储器(RAM)
• 用户可以用编程装置读出RAM的内容,也可以将用户程序写入RAM,因此,RAM又叫读写存储器, 它是易失性的存储器,它的电源中断后,存储的信息将会丢失。 RAM的工作速度高,价格便宜,改写 方便。在关断可编程控制器的外部电源后,可用锂电池保存在RAM中的用户程序和某些数据,锂电池 可用2~5年,需要更换锂电池时,由可编程控制器发出信号,通知用户。现在部分可编程控制器仍用 RAM来储存用户程序。
一个字、一个双字里面的数据跟字节里的也是类似只有多少不同没有本质区别--计 算器的位数---算盘的位数 多少而已。
一个字母几个字节
一个字母几个字节
一个字母两个字节。
字(word)两个byte称为一个word,所以字大小应该是16位bit,共两字节。
双字(double word 简写为DWORD)见名知意,两个字,四个字节,32bit。
在C语言中,每种数据类型都有其存储长度。
而且在特定的平台和特定的编译器下是不一样的。
char 字符型占1byte 即8位,一个char型数据(例如:a、#、!之类的)用了1个字节来存储
unsigned char 无符号的字符型占1byte 即8位它主要是为了能够兼容扩展ASCII码,由于 char 由8位表示表示范围为 -128 - +127,无法表示带上扩展ASCII码总共256个字符所以如果把 8位中的最高位符号位也用来计数,就可以正好表示256个字符,unsigned char 表示范围为 0 - 255 正好256个数可以对应包含扩展ASCII码在内的共计256个ASCII字符
汉字在计算机中存储是使用机内码(一种数字编号)来存储的,而常用汉字不过是几万个,如果用16位比特(即2的16此方等于65536)就可以表示了,所以汉字字符存储使用了两个字节。
每两个字节即16bit对应一个汉字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
双字、字、字节和位的关系总结
一、资料查询:
相信从网上搜一下西门子数据类型方面的资料,会有一大堆,最常见的就是解释双字和字节之间的组成关系,如下图:
就以这个资料为基础,进行试验验证;
二、程序准备
由于资料上大部分都是以M区介绍双字和字节等关系,但是实际情况是DB块中的数据居多,故在此实验中,将M区和DB区的内容进行对比,以方便观察,进行如下准备:
1、新建DB块,里面创建需要的变量:
2、创建M区变量,以方便做比较,这里取MD24,然后将其拆成字、字节、位,以方便观察:
3、创建FC程序:主要是将双字拆成字、双字,并将双字传送给单字、单字传送给双字,为了方便置位双字中的位,特意用数组逐位传送给双字中的位:
三、程序验证:
省略掉程序的下载啊、仿真啊的操作步骤,因为那个不是重点,直接展示测试结果:从数组中,分别置位不同的位,则相当于分别对双字中的位进行置位,可以分别观察结果,现在取比较有代表性的两个位,即将第0位和第16位置1,结果如下两图所示:
通过测试可以发现如下规律:
1、西门子双字中位的排列,是从右向左排的,这点和平时写字顺序正好相反,但是我觉得可以从进制的位数去记忆一下,比如我们十进制,从右往左分别是个、十、百、千、万等位,这个正好类似于那个;
2、可以看下双字传给单字的情况,对于截取数据时候比较有帮助,具体不总结,可以体会一下;
3、第三条也是我一开始比较迷糊的地方,观察双字的四个字节,和位的排序是一样的,即0位在右,依次往左增大,但是M区其实按照这个方向排列,但是让人很迷糊,上图为例,我们置位0位的时候,在DB中是第0个字节有变化,但是在M区中对应的是MB27变化,虽然按照一开始资料所示,MB27是在
最右边,但是MB27是第0字节,MB26是第1字节,依次类推,大小和字节顺序又反了一次,虽然仔细想一下就明白怎么回事,但是依然有点小别扭;。