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

news2024/10/6 8:32:22

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.coloradmin.cn/o/1788469.html

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

相关文章

UMG绝对坐标与局部空间

在 Unreal Engine 的 UMG(Unreal Motion Graphics)中,“绝对坐标”和“局部空间”是两个常见的概念,主要用于描述 UI 元素的位置和大小。 概念与区别 绝对坐标(Absolute Coordinates):这是指相…

java自学阶段二:JavaWeb开发--day80(项目实战2之苍穹外卖)

《项目案例—黑马苍穹外卖》 目录: 学习目标项目介绍前端环境搭建(前期直接导入老师的项目,后期自己敲)后端环境搭建(导入初始项目,新建仓库使用git管理项目,新建数据库,修改登录功能&#xff…

生成随机图片

package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…

如何让Google收录网站?

Google收录网站的前提条件是确保网站可以公开访问,并且页面加载速度需要快,这样Google爬虫才可以访问到你的网站,并且索引你网站中的内容。实现了上面的前提条件,可以通过优化数据结构、创建站点地图、使用Google Search Console、…

Django 视图探秘:FBV与CBV注册方式的异同,揭秘as_view()的执行魔法

文章目录 一、FBV、CBV注册方式及其区别FBVCBV 二、as_view()函数查看对应的view函数具体内容,最终返回的是dispatch方法查看dispatch方法 一、FBV、CBV注册方式及其区别 FBV FBV:path(index/,views.index) 通过调用函数方式,views.index是一…

【Linux】进程(5):命令行参数

大家好,我是苏貝,本篇博客带大家了解Linux进程(5):命令行参数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 (A)为什么要有命令…

推荐一个远程数据库 Supabase

地址:Supabase | The Open Source Firebase Alternative 使用文档: Supabase Docs

数据库 | 模式分解

1. 无损连接保持依赖 要有一个关系有两个依赖码

linux系统——计算机网络协议,ifconfig命令

在linux系统中,可以在指定文件查看网卡名,进而使用ifconfig网卡名查询相应网络信息

RH850F1KM——ADC模块

文章目录 前言一、Conversion time:转换时间二、参考电压三、分辨率scan group四、虚拟通道模数转换器-ADC基础 Autosar MCAL配置——ADC 前言 在RH850F1KM系列MCU中,ADCA模块即为ADC模块,如下是各个型号所具有的ADC物理单元。 时钟的频率决定ADC的触发频率,转换时间和采样…

uniApp子组件监听数据的变化的方法之一

props:{//用来接收外界传递过来的数据swiperList:{type:Array,default:[]}}, swiperList:是父组件传递过来的值 通过 watch 监听(在父组件中也同样可以使用,跟VUE的监听数据变化同理) watch:{//监听组件中的数据变化swiperList(ol…

[数据集][图像分类]轮胎纹理识别裂纹和正常轮胎分类数据集1028张2类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):1028 分类类别数:2 类别名称:["cracked","norma…

低代码开发系统是什么?它有那些部分组成?

低代码开发系统是什么?它有那些部分组成? 一、引言 在当今快速变化的商业环境中,企业对于快速响应市场需求、降低开发成本和提高开发效率的需求日益增强。低代码开发系统(Low-Code Development Platform)应运而生&am…

C#WPF数字大屏项目实战02--主窗体布局

1、主窗体起始属性 设置有关属性如下: WindowStyle"None"-》无边框 AllowsTransparency"True" -》允许透明 WindowStartupLocation"CenterScreen"-》启动时位于屏幕中间 FontFamily"Microsoft YaHei"-》字体微软雅黑 …

关于FPGA 使用SPI FLASH固化时如何配置固化参数

关于FPGA 使用SPI FLASH固化时如何配置固化参数 EDA工具:Vivado 关于FPGA 使用SPI FLASH固化时如何配置固化参数一、引言二、如何设置固化参数:使用50M的速度 ,SPI为X4 ,以及bit压缩第一:点open implenment design第二…

每日刷题——杭电2156.分数矩阵和杭电2024.C语言合法标识符

杭电2156.分数矩阵 原题链接:Problem - 2156 题目描述 Problem Description:我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。请求出这个矩阵的总和。 Input&#xf…

mimkatz获取windows10明文密码

目录 mimkatz获取windows10明文密码原理 lsass.exe进程的作用 mimikatz的工作机制 Windows 10的特殊情况 实验 实验环境 实验工具 实验步骤 首先根据版本选择相应的mimikatz 使用管理员身份运行cmd 修改注册表 ​编辑 重启 重启电脑后打开mimikatz 在cmd切换到mi…

Python考试复习--day8

1.查询省会 capitals {湖南:长沙,湖北:武汉,广东:广州,广西:南宁,河北:石家庄,河南:郑州,山东:济南,山西:太原,江苏:南京,浙江:杭州,江西:南昌,黑龙江:哈尔滨,新疆:乌鲁木齐,云南:昆明,贵州:贵阳,福建:福州,吉林:长春,安徽:合肥,四川:成都,西藏:拉萨,宁夏:银川,辽宁:沈阳,青海…

打造你的专属Vue组件:超实用“手机号、邮箱、身份证号加密显示组件“实战

随着Web应用程序的发展,我们经常需要处理用户敏感信息,如手机号码和身份证号码。为了保护用户隐私,我们需要在前端对这些信息进行加密处理,以避免直接暴露在页面上。在这篇博客中,我们将介绍如何使用Vue 3.0单文件组件…

你喜欢什么样的狗?喜欢内狗还是外狗?论看门狗的重要性:极低功耗微处理器复位电路CN803/CN809/CN810

看门狗:缩写WTD,英文WATCH DOG. 你的程序会死机吗? 陷入死循环或程序指针不知跑哪里去了,看门狗的作用是把程序拉回来,重新开始跑。 有了看门狗,程序就不会死机,所以很重要。 比如一个温度控制器&#xf…