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.mzph.cn/diannao/20147.shtml

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

相关文章

简要分析学习spring内存马,劫持马

简要分析学习spring内存马,劫持马 本文主要是通过SpringMemShell这个工程,来对spring内存马进行演示,利用。 写在前面: 参考的是大佬给的流程以及思路,其中的解释与分析非常详细 ----->>大佬的链接 这里的内存马文件取自gi…

第100+9步 ChatGPT文献复现:ARIMA预测百日咳

基于WIN10的64位系统演示 一、写在前面 我们来继续换一篇文章来学习学习: 《BMC Public Health》杂志的2022年一篇题目为《ARIMA and ARIMA-ERNN models for prediction of pertussis incidence in mainland China from 2004 to 2021》文章的模拟数据做案例。 这…

hadoop(1)--hdfs部署(亲测可用)

一、准备: 1、三台集群部署,配置hosts #cat /etc/hosts 192.168.46.128 node1 #nameNode dataNode secondaryNameNode 192.168.46.129 node2 #datanode 192.168.46.130 node3 #datanode说明: NameNode: 主节点管理者 DataNode&…

LNMP部署及应用

目录 1.LNMP概述 Nginx 特点 Nginx 作用 2.分布式部署LNMP操练 Nginx主机:CentOS 7-1 PHP主机: CentOS 7-2 1.LNMP概述 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行&…

CPU/GPU/FPSGO,负载调试/设置命令开关

CPU/GPU/FPSGO,负载调试/设置命令开关 首先,进入: adb shell cat sys/kernel/ged/hal/gpu_utilization 查看GPU的负载情况。输出三个数字,第1个表示使用率,第3个表示空闲率。 echo 0 /sys/kernel/fpsgo/common/force…

Linux网络-使用Tcp协议进行网络通信并通过网络接口实现远端翻译

文章目录 Tcp协议Tcp协议常见API接口1. int socket(int domain, int type, int protocol);2. int bind(int socket, const struct sockaddr *address, socklen_t address_len);struct sockaddr 3. int listen(int socket, int backlog);4. int accept(int socket, struct socka…

计算机网络——如何保证 TCP 传输的可靠性

TCP 是传输层上的协议,它是可靠的,面向连接的。 概括 1. 设置传输格式,包括分为 TCP 段、使用校验和、使用序列号 2. 数据丢失之后的重传,超时重传、快速重传、SACK 选择确认、D-SACK 重复选择确认 3. 流量控制,控…

字符串-至多包含K种字符的子串中最长子串(mid)

一、题目描述 二、解题思路 借鉴以下题目思想,使用双指针,外层循环右侧指针移动,内存循环左侧指针移动 字符串-最长不含重复字符的子字符串(mid)-CSDN博客文章浏览阅读622次,点赞17次,收藏4次。java刷题:…

探索第三方美颜SDK:美颜插件的技术原理

本篇文章,我们将深入了解第三方美颜SDK,主要探讨关于美颜插件的工作机制与算法。 一、第三方美颜SDK的概述 第三方美颜SDK是由专业团队开发的一套用于实现美颜功能的软件开发工具包。它通常包括了各种美颜算法、滤镜效果、人脸识别等核心技术&#xff…

Kafka broker的新增和剔除(服役与退役)

说明:集群现有broker:node1,node2,node3三个,broker.id分别为0,1,2 已有两个topic:products、cities 1、退役(Kafka集群中减少一个服务器broker2) 退役后要保证剩下的服务器数量大于等于备份数&#xff0c…

软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析

本文主要介绍如何在数据处理系统中应用业务抽象的设计思想。目前业界流行的数据处理方式是流式处理,主流的流式处理引擎有Apache Spark,Apache Flink等等。本文选择Apache Flink作为实战案例的落地。由于本文主要是讲解设计思想和流式处理引擎相结合的方…

排八字软件有哪些?

排八字软件有哪些?在市面上有很多排八字的软件可供选择,其中一些比较知名的有: 无敌八字排盘软件:这是一款功能强大的八字排盘软件,提供详细的八字解析和命理分析服务,且完全免费。 网易星盘:网…

【一百】【算法分析与设计】N皇后问题常规解法+位运算解法

N皇后问题 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给出一个nnn\times nnn的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同…

自用了很久的一款强制卸载软件,超级好用!!!

Ashampoo UnInstaller是一款由Ashampoo公司开发的专业卸载工具,它提供了比Windows自带卸载功能更为彻底的程序卸载解决方案。是一款功能强大的卸载工具,旨在帮助用户彻底删除不需要的程序和应用,卸载难以卸载的软件工具,此外他还有…

面试杂谈k8s

其实看我之前的博客,k8s刚有点苗头的时候我就研究过,然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了,正苦于不知道写什么,水一篇 用来面试应该是够了 支持云应用开发、运行与运维一体化的云应用平台软件应运而生 k8s核…

智慧车站管理:提升地铁站新质生产力的策略

应用图扑自研产品 HT for Web 结合 BIM 技术,搭建轻量化的 WebGIS 智慧车站系统。 该系统通过整合轨道交通信息,实现了车站数据的多维互联与融合。提升了车站信息管理效率和运营效能,并优化了乘客出行体验。对构建智能、高效、环保的轨道交通…

使用C#实现VS窗体应用——画图板

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。🍎个人主页:Meteors.的博客💞当前专栏:小项目✨特色专栏: 知识分享&#x1f96d…

前端树形结构组件的设计与实现:以企查查、天眼查股权结构为例

摘要 随着信息化时代的不断发展,数据可视化在各行各业的应用越来越广泛。特别是在商业信息查询领域,如企查查、天眼查等平台,通过直观的数据展示方式,帮助用户快速理解复杂的商业关系。本文将以一个前端tree树形结构模版组件为例…

【算法】模拟算法——替换所有的问号(easy)

题解:替换所有的问好(模拟算法) 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接:LINK 2.题解 纯模拟。从前往后遍历整个字符串,找到问号之后,就⽤ a ~ z 的每⼀个字符去尝试替换即可。 3.参考代码 class Solution { pu…

使用docker部署项目

一、docker私有镜像仓库 1、docker私有镜像仓库 库(Repository)是集中存放镜像的地方,又分为公共镜像和私有仓库。 当我们执行docker pull xxx的时候,它实际上是从registry.docker.com这个地址去查找,这就是Docker公…