石鑫华视觉论坛

 找回密码
 注册会员
查看: 6115|回复: 1

[原创] 二进制字符串转换为布尔数组

[复制链接]
  • TA的每日心情
    开心
    昨天 21:00
  • 签到天数: 3412 天

    连续签到: 14 天

    [LV.Master]2000FPS

    发表于 2018-11-14 08:47:38 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    群里有人问,如何将接受到的二进制字符串,转换成布尔数组显示出来,如收到10010101这样的字符串,显示为TFFTFTFT这样的布尔数组。然后还给出了自己的解决方法:

    二进制字符串转换为布尔数组方法1

    二进制字符串转换为布尔数组方法1

    提问人的方法
    方法是正确的,对每个位的ASCII码进行判断,0的值为48,如果减48大小0,则表示值比48大,如49则为1,那就是真。不过使用了for循环,比较耗时复杂。而且里面的判断方法也比较多余。

    二进制字符串转换为布尔数组方法2

    二进制字符串转换为布尔数组方法2

    热心人方法
    热心人的方法,比较好懂,对每个位的字符值进行判断,等于1为真,不等于1为假。不过这里只是一个个显示的,不是一个数组,如果要弄成数组,还得创建数组。而且这种方法,如果字符串一长,那可就重复性工作大发了。

    二进制字符串转换为布尔数组方法3

    二进制字符串转换为布尔数组方法3

    机器视觉论坛方法
    上面的是论坛提供的方法,其实这个方法很简单,在提问人自己的基础上修改一下就可以。字符串变成数组,首先就是要将字符串变成字符的数组,然后再判断。这里只有字符串转字节数组函数可以实现,可以将字符串转换为ASCII的数组(字母、数组的比较容易处理,一个字节一个字符,如果是中文或其它双字节的字符,则会有两个字节)。转换成数组后,如果确定接受到的字符只有0/1这两个二进制的字符,那么只需要判断是不是等于1(49)或不等于0(48)即可。这里用的是不等于48,即只要不为0,就认为是真(逻辑上一般也是这样认为的,0为假,非0为真,而不只是1为真)。字符串转换为字节数组后是一个数组,数组也是可以直接和数组比较的(数组中的每个元素与数值比较),比较后得到的值就是一个数组。当然,如果要将布尔数组逐个显示,只需要使用索引数组,然后显示出来即可,也比较方便。




    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(24.09)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-12-23 02:27

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表