23.Labview中的数值类型讨论 ---- 位(bit)、字节(byte)、I8、U8、单双精度、复数

hello,大家好,本篇向大家介绍一个最常用但最容易让人忽略和最容易犯错的知识:数值。
“数值” 这个概念在Labview中被涉及的还是很多的,几乎任何一个程序都无可避免的会用到,但我相信大家绝大多数人对数值这个概念应用的并不深入也不透彻,甚至很多同学对什么是bit、什么是byte都不清楚,那么本章就以数值位切入口详细介绍一下数值这个概念。

数值这个概念大家都在熟悉不过了,加减乘除从上学就开始接触,它在Labview中的表现形式还是特别多的,包括了十二种数值:有I8、I16、I32、I64、U8、U16、U32、U64、SGL、DBL、EXT、CSG、CDB、CXT共14种

为了让大家了解的十分清晰,题主打算从最最最基础的内容讲起,即计算机基础知识中的位(Bit)和字节(Byte).

之前题主讲过一篇有关于数据类型的文章,大家想补充理论的话可以点击链接直接查看:

Labview接线颜色和数据类型及强制类型转换:
https://blog.csdn.net/m0_52176775/article/details/138847314

数值类型

  • 1. 比特与字节数
  • 2. 数据类型介绍
    • 2.1 浮点数(folat)
    • 2.2 整数(int)
    • 2.3 复数(complex)
  • 3. 数据类型的选用

1. 比特与字节数

为了让大家更清晰的了解这些概念,本节先带大家来深入的了解一下比特(Bit)和字节数(Byte) 的定义。

1.比特(Bit)的概念

比特(Bit)是信息的基本单位,它只有两个可能的值: 0 或 1。在数字电子和计算中,这些值通常用来表示二进制数。我们大家都清楚计算机的最小数据单元是基于二进制的,也就是说,我们通常所说的 “1位”或者“1比特” 就是指的是计算机中二进制数中的一个1或者0。
我们通常所说的Bit、比特、位都是同一个概念,即1比特=1Bit=1位。
下图可以很好的说明位与字节之间的关系,这是个固定关系,即:无论在任何场景中,1字节=8比特!
在这里插入图片描述
2.字节(Byte)的概念

字节(Byte)的概念,在我们上文了解了位的概念之后,这个就比较好理解了,字节(Byte) 是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。一个字节通常由8位(bit)二进制数组成,也有用其他位数构成的字节,如日本计算机汉字编码所用的JIS码就是用16位构成一个字节的,而1个汉字占用2个字节。
在这里插入图片描述
但在Labview中,我们只需了解,一个汉字占两个字节即可,这一点我们可以在程序中得到验证,如下图所示,字符串中有个函数名为 “字符串长度” ,这个函数实际返回的就是该字符串所占的字节数。也就是说,我们看到的每个汉字在电脑中实际是由64个1和0组成的。

在这里插入图片描述
3.位(Bit)与字节(Byte)的联系

位(Bit)与字节(Byte)之间的联系除上述1字节等于8位之外,最让我们熟知的就是计算机的位数,众所周知,计算机是有32位和64位两种,也就是说一个是4字节,一个是8字节,这个是什么意思呢?也就是说电脑处理数据的长度,32位的一次处理4个字节,而64位的一次可以处理8个字节。

2. 数据类型介绍

在Labview中,我们拿到一个数值的常量或者控件,在后面板右键 — 选择“表示法” ,即可选择该常量或者控件要表达的数据类型
下方是不同数据类型的后面板的控件图,每一个控件都代表了一个不同的数据类型,这种控件类型大家可以右键点击控件,单击“显示为图标”获得,大家可以仔细观察到,不同的数据类型的端口图标会有不同的外观,并且该控件的数值类型在控件的图标中有名称显示。
在这里插入图片描述
针对不同的数据类型,我们按照三种数据大类对数值进行介绍,分为**浮点数(float)、复数(int)、整数(complex)**三类来讲解。

2.1 浮点数(folat)

浮点数(float)在数据类型中是使用的最多的一种数值类型,这种数据类型可以表示任何一个数(小数、整数),其中浮点数在Labview的数据类型中包含了三种,分别是EXT、DBL、SGL三种,其中应用最广泛的为DBL浮点数,那么这三种数据类型如何理解呢?
说白了,就是带小数点的就是哦浮点数,浮点数就是带小数点的数。

当然浮点数的不同分类有不同的应用场景,那么有什么作用呢?
SGL(单精度浮点数): 可表示范围为最小正数1.40e-45,最大正数3.40e+38,最小负数-1.40e-45,最大负数-3.40e+38

DBL(双精度浮点数): 可表示范围为最小正数4.94e-324,最大正数1.79e+308,最小负数-4.94e-324,最大负数-1.79e+308

EXT(扩展精度浮点数): 可表示范围为最小正数6.48e-4966,最大正数1.19e+4932,最小负数-6.48e-4966,最大负数-1.19e+4932

那么除了表达范围不同之外,其字节上有什么区别呢?我们上文讲到字节和位数,那么从最深层次来看SGL是由下面结构组成的:
SGL使用32位(4个字节)来表示浮点数,遵循IEEE 754标准的单精度格式。这32位中,1位用于表示符号,8位用于表示指数,剩下的23位用于表示尾数(或称为有效数字)。
在这里插入图片描述
DBL则使用64位(8个字节)来表示浮点数,也是遵循IEEE 754标准,但为双精度格式。在64位中,1位用于表示符号,11位用于表示指数,剩下的52位用于表示尾数。
在这里插入图片描述

2.2 整数(int)

整数(int)在数据类型中是使用也特别多,它有两种:一种是有符号的(I),即可表示正负数;另一种是无符号的(U),即仅表示0和正整数。

1.有符号整型(I)

有符号整型(I)其中 I 表示Integer(整数的英文),I8表示的是8位有符号整数,I16表示的是16位的有符号整数,I32表示的是32位的有符号整数,位数越多,那么可表示的数据范围越大,大家仅需知道即可,无需背下来。其可表示的范围如下所示:
在这里插入图片描述
2.无符号整型(U)

无符号整型(U)同样,对U8,U表示Unsigned Integer(无符号整数的英文),8表示用8位二进制表示一个数,因为是正整数所以不表示正负号符号位,所以其表示的整数范围与I8不一样。如下图所示:
在这里插入图片描述
这里需要注意一点:
当使用的数字超过这个控件数据类型所表达的数据范围时,就会将这个数字强制转换位为离他最近的数字。

比如,我们想输入整数500,但是使用了U8类型控件后,我们输入500后,控件内的数值自动变为了255,着个大家自行尝试,题主这里就不在过多赘述。

2.3 复数(complex)

复数(complex)分为3种数据类型,分别为CSG、CDB和CXT。
其中,
CSG表示实部和虚部用SGL表示的复数,SG表示SGL。
CDB表示实部和虚部用DBL表示的复数,DB表示DBL。
CXT表示实部和虚部用EXT表示的复数,XT表示EXT。

以上实部虚部的数据类型我们上面提到了,相信大家都了解了。那么他们有如下特点:
精度: CXT > CDB > CSG。CXT提供了最高的数值精度,而CSG的精度最低。
计算效率: CSG > CDB > CXT。由于精度要求的不同,CSG在计算效率上通常最高,而CXT由于需要处理更高的精度,计算效率相对较低。

那么这么多类型我们该如何选用呢?
请看下文。

3. 数据类型的选用

相信大家通过上述描述,都知道自己不同情况下会使用什么数据类型了,那么选用的情况题主给大家提一些建议:
1.数值范围
整数类型(I8、I16、I32、I64、U8、U16、U32、U64),要确定你的数据是否可能超出某个类型的表示范围。例如,如果你知道你的数据永远不会超过255,那么U8就是合适的选择。
浮点数和复数类型同样需要考虑数值范围,但还需要考虑精度。
2.精度
浮点数和复数类型(SGL、DBL、EXT、CSG、CDB、CXT)中,如果你需要高精度的计算,那么应该选择精度更高的类型,如DBL、EXT、CDB或CXT。
3.内存使用
每种数据类型都占用不同数量的内存。例如,I8占用1字节,而I64占用8字节。在选择数据类型时,需要考虑你的内存限制,以及是否有必要为了节省内存而牺牲精度或范围
4.性能
使用更小的数据类型可能会提高性能,因为它们可以更快地加载到CPU中,浮点数的性能也可能受到精度的影响,因为高精度计算通常需要更多的CPU周期。

总结:

如果你知道你的整数数据永远不会超过某个范围(例如0-255),那么选择相应的无符号整数类型(如U8)。
对于需要高精度的浮点数计算,选择DBL或EXT。如果你需要处理复数,并且需要高精度,那么选择CDB或CXT。
如果你正在处理大量的数据,并且内存是一个限制因素,那么可能需要选择更小的数据类型来节省内存。但是,这可能会牺牲一些精度或范围。
在选择数据类型时,始终考虑你的具体需求和限制,以及你的代码的可读性和可维护性。

以上就是对大家使用时的建议,那么对于数值类型的讲解到此结束,如果大家对这方面的知识有疑问或者不理解的,可以随时评论和私聊,我会耐心帮大家解答这些问题。
那么今天的教学就到这里,希望大家好好消化

**如果这篇文章对大家有帮助的话,欢迎大家点赞收藏评论和加关注,更多精彩干货和文章,请点题主主页查看,那么本期到此结束,加油~祝大家越来越强!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/338505.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低代码开发平台(Low-code Development Platform)的模块组成部分

低代码开发平台(Low-code Development Platform)的模块组成部分主要包括以下几个方面: 低代码开发平台的模块组成部分可以按照包含系统、模块、菜单组织操作行为等维度进行详细阐述。以下是从这些方面对平台模块组成部分的说明: …

python编程:SQLite 管理图片数据库

在本博客中,我们将介绍如何使用 wxPython 和 sqlite3 模块构建一个 GUI 应用程序,该程序可以遍历指定文件夹中的所有图片,并将其信息存储到 SQLite 数据库中。 C:\pythoncode\new\InputImageOFFolderTOSqlite.py 项目简介 我们的目标是创建…

【Modelground】个人AI产品MVP迭代平台(2)——网站从0-1部署教程

文章目录 1.选购一台云服务器2. 购买域名3. 通过nginx部署静态网站4. 通过gitee在云服务器拉取代码5. ICP备案总结 1.选购一台云服务器 目前阿里云在促销,一台2核2GB内存3Mbps宽带的云服务器,一年只需要99元,学生更便宜,我认为这…

LitCTF部分wp

litctf wp 第一次ak了web和misc,非常激动,感谢lictf给我这个机会 最终成果 全靠队里的密码逆向✌带飞。一个人就砍了近一半的分数 这里是我们队的wp web exx 题目名反过来就是xxe,考察xxe,查看登录的数据包 发现传的就是xml…

【Java数据结构】详解LinkedList与链表(四)

🔒文章目录: 1.❤️❤️前言~🥳🎉🎉🎉 2.什么是LinkedList 3.LinkedList的使用 3.1LinkedList的构造方法 3.2LinkedList的其他常用方法介绍 addAll方法 subList方法 LinkedList的常用方法总使…

携程梁建章:持续投资创新与AI,开启旅游行业未来增长

5月30至31日,携程集团在上海和张家界举办Envision 2024全球合作伙伴大会,邀请超50个国家和地区的1600余名外籍旅游业嘉宾与会,共同探讨中国跨境旅游市场发展机遇,讲好中国故事。 携程国际业务增速迅猛,创新与AI解锁未…

【设计模式深度剖析】【4】【结构型】【组合模式】| 以文件系统为例加深理解

👈️上一篇:适配器模式 | 下一篇:桥接模式👉️ 设计模式-专栏👈️ 目 录 组合模式定义英文原话直译如何理解? 3个角色UML类图代码示例 组合模式的优点组合模式的使用场景示例解析:文件系统UML类图代码示例 组合模…

sqoop操作

介绍 sqoop是隶属于Apache旗下的, 最早是属于cloudera公司的,是一个用户进行数据的导入导出的工具, 主要是将关系型的数据库(MySQL, oracle...)导入到hadoop生态圈(HDFS,HIVE,Hbase...) , 以及将hadoop生态圈数据导出到关系型数据库中 操作 将数据从mysql中导入到HDFS中 1.全量…

【用Python画画】六一儿童节画爱心

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、代码示例三、知识点梳理四、总结 一、前言 本文介绍如何使用Python的海龟画图工具turtle&#xf…

echarts绘制三维柱状图

echarts ECharts 是一个使用 JavaScript 实现的开源可视化库,主要用于数据的可视化展示。ECharts 支持丰富的图表类型,如折线图、柱状图、饼图、地图、K线图等,可以满足不同类型数据的展示需求。 文档地址:echarts 本次所绘制三…

React-表单受控绑定

概念:使用React组件的状态(useState)控制表单的状态 1.准备一个React状态值 2.通过value属性绑定状态,通过onChange属性绑定状态同步的函数

【Linux】写一个日志类

文章目录 1. 源代码2. 函数功能概览3. 代码详细解释3.1 头文件和宏定义3.2 Log类定义3.3 打印日志的方法3.4 操作符重载和析构函数3.5 可变参数函数的原理 4. 测试用例 1. 源代码 下面代码定义了一个 Log 类,用于记录日志信息。这个类支持将日志信息输出到屏幕、单…

T检验——单样本t检验/两独立样本t检验/配对样本t检验

T检验——单样本t检验/两独立样本t检验/配对样本t检验 1.单样本t检验1.1 适用范围 2. ( 独立样本t检验)两独立样本t检验3.ANOVA多组样本显著性检验(2组以上)4. 配对样本T检验 1.单样本t检验 1.1 适用范围 单样本t检验:即已知样本…

virtualbox虚拟机、centos7安装增强工具

文章目录 1. virtualBox语言设置2. 设置终端启动快捷键3. 添加virtualbox 增强工具4. 设置共享文件夹 1. virtualBox语言设置 virtualbox -> file -> perferences -> language ->选择对应的语言 -> OK virtualbox -> 管理 -> 全局设定 -> 语言 -> …

Redis数据类型(下篇)

5.Redis有序集合zset(sorted set) 本质就是在set的基础上,每个val值前面加了一个score分数值。 (1)向有序集合中添加多个(或者一个)元素和其对应的分数 127.0.0.1:6379> zadd zset1 100 a 90 b 80 c 70 d 60 e (…

C++入门3——类与对象2(类的6个默认成员函数)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 构造函数的概念 2.2 构造函数的特性 3. 析构函数 3.1 析构函数的概念 3.2 析构函数的特性 4.拷贝构造函数 4.1 拷贝构造函数的概念 4.2 拷贝构造函数的特性 5.赋值运算符重载函数 5.1运算符重载函数 5.2 赋值运算符重…

如何跨渠道分析销售数据 - 7年制造业销售经验小结

如何跨渠道分析销售数据 - 7年制造业销售经验小结(1) 【前言】 在我过去7年销售工作生涯中,从第一年成为公司销冠后,我当时的确自满的一段时间,认为自己很了不起。但是第一年的销售业绩并没有拿到提成,最…

【开源】课程管理平台 JAVA+Vue.js+SpringBoot+MySQL

目录 一、项目介绍 课程管理模块 作业题目模块 考试阅卷模块 教师评价模块 部门角色菜单模块 二、项目截图 三、核心代码 一、项目介绍 Vue.jsSpringBoot前后端分离新手入门项目《课程管理平台》,包括课程管理模块、作业题目模块、考试阅卷模块、教师评价模…

二叉树的右视图,二叉搜索树中第k小的元素

第一题&#xff1a; 代码如下&#xff1a; vector<int> rightSideView(TreeNode* root) {vector<int> res;if (root nullptr)return res;queue<TreeNode*> q;q.push(root);int k 1;while (!q.empty()){while (k--){TreeNode* front q.front();q.pop();i…

乡镇围栏数据存储ES实践

空白的是ES渲染的问题&#xff0c;放大后看到几乎没有丢失数据 1. ES索引建立 PUT /town_fence {"settings": {"number_of_shards": 1},"mappings": {"properties": {"province": {"type": "keyword"…