打标、去标工具。

经常有一个对象都是有一个Int类型的字段,用于给该对象进行打标。  一个int类型是32位,  就说明 这样的一个字段,可以被打上32个标 。 每一个标占1位 。  0表示未被打标,1表示已被打标。


写了一个Util来进行打标与去标操作。如下:

public class FlagBitUtil {
	
	public static final int FULL_FLAG = 0XFFFFFFFF ;
	
	/**
	 * 打标
	 * @param falg 需要打标的源数
	 * @param offset 标位
	 */
	public static int sign(int flag , int offset){
		int offsetT = 1 << ( offset - 1);
		return flag | offsetT ;
	}
	
	/**
	 * 去标
	 * @param falg 需要移除标的源数
	 * @param offset 标位
	 */
	public static int removeSign(int flag , int offset){
		int offsetT = 1 << ( offset - 1);
		offsetT = FULL_FLAG ^ offsetT ;
		return flag & offsetT ;
	}
	
	/**
	 * 检查标位是否被打标
	 * @param flag	
	 * @param offset  标位
	 * @return 该标位是否被打标
	 */
	public static boolean checkSign(int flag , int offset){
		int offsetT = 1 << ( offset - 1);
		return (flag & offsetT) == offsetT ;
	}

}



测试如下:

public class Test {
	
	public static void main(String[] args) {
		
		int flag = 0 ;	//原始标
		
		flag = FlagBitUtil.sign(flag, 3);	//将标的第3位标记 
		
		System.out.println(flag + "\t" + Integer.toBinaryString(flag));
		
		flag = FlagBitUtil.sign(flag, 4);  //将标的第4位标记
		
		System.out.println(flag + "\t" + Integer.toBinaryString(flag));
		
		flag = FlagBitUtil.removeSign(flag, 3) ;  //将标的第3位标记移除
		
		System.out.println(flag + "\t" + Integer.toBinaryString(flag));
		
		//检查第1、2、3、4、5位是否被打标
		System.out.println(FlagBitUtil.checkSign(flag, 1));	
		System.out.println(FlagBitUtil.checkSign(flag, 2));
		System.out.println(FlagBitUtil.checkSign(flag, 3));
		System.out.println(FlagBitUtil.checkSign(flag, 4));
		System.out.println(FlagBitUtil.checkSign(flag, 5));
		
	}

}

输出:
4	100
12	1100
8	1000
false
false
false
true
false


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LabVIEW是一种非常流行的虚拟仪器软件平台,可以用于激光打标系统的调试和控制。下面是使用LabVIEW调控激光打标的基本步骤: 首先,我们需要将激光打标系统与计算机连接起来。通常使用适配器将计算机与激光控制器连接,然后通过LabVIEW提供的串口通信等功能进行数据传输。 接下来,我们需要编写相应的LabVIEW程序来控制激光打标。在程序中,我们可以使用LabVIEW提供的图形化编程环境来快速搭建程序框架,并添加各种输入、输出和控制模块。一般来说,我们可以利用LabVIEW提供的各种工具箱来处理特定的激光打标任务,例如通过控制发射功率、调节打标速度和位置等。 在程序编写完成后,我们可以通过LabVIEW的虚拟前面板界面来实时监控和调节激光打标过程。通过前面板,我们可以实时显示激光打标的位置、速度、功率等相关参数,并进行交互式调整。此外,LabVIEW还允许我们将相关数据记录下来,以便后续分析和优化。 最后,我们可以通过LabVIEW将程序部署到激光打标系统中,并进行实际打标操作。LabVIEW提供了与激光打标系统硬件的接口,可以将程序与控制器实时连接起来,保证打标操作的准确性和稳定性。 综上所述,通过LabVIEW我们可以方便地调控激光打标系统。从搭建程序框架到实时监控和优化,LabVIEW提供了丰富的功能和工具箱,可以帮助我们实现高效的激光打标操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值