using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Game.LockNumbers
{
public struct LockInt
{
int vbase;
int vadd;
static readonly int base_flag = 29173;
static readonly int add_flag = 16829;
public int Value{
get { return ( (~vbase + base_flag) >> 1) + vadd + add_flag; }
set
{
var _base = (int)(value * 0.37134f);
vbase = (_base << 1) - base_flag;
vbase = ~vbase;
vadd = (value - _base);
vadd -= add_flag;
}
}
public LockInt(int v)
{
vbase = 0;
vadd = 0;
Value = v;
}

public static implicit operator int(LockInt v)
{
return v.Value;
}

public static implicit operator LockInt(int b)
{
LockInt d ;
d.vadd = 0;
d.vbase = 0;
d.Value = b;
return d;
}

public static LockInt operator + (LockInt v1, LockInt v2)
{
return v1.Value + v2.Value;
}
public static LockInt operator -(LockInt v1, LockInt v2)
{
return v1.Value - v2.Value;
}
public static LockInt operator *(LockInt v1, LockInt v2)
{
return v1.Value * v2.Value;
}
public static LockInt operator /(LockInt v1, LockInt v2)
{
return v1.Value / v2.Value;
}
}
}

lockint +=1;

locakint =1;

LockInt的更多相关文章

  1. C#线程安全使用(三)

    在讲CancellationTokenSource之前我决定先讲一下lock和Interlocked,如果能很好的理解这两个,再去理解CancellationTokenSource就会方便很多,由于我 ...

  2. javascript轮询请求服务器

    抛出问题:web浏览器如何与服务保持通信? 方法一:Ajax轮询 方法二:EventSource轮询 方法三:websocket保持长连接 下面的解决方案是,Ajax轮询与EventSource轮询的 ...

随机推荐

  1. Ubuntu 为 root 帐号开启 SSH 登录

    1. 修改 root 密码sudo passwd root 2. 以其他账户登录,通过 sudo nano 修改 /etc/ssh/sshd_config :xxx@ubuntu:~$ su - ro ...

  2. linux 二级域名设置

    首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com 其次,在 httpd.conf 中打开 mod_rewrite 之后,在 httpd.conf 的最后,添加以下内容: Rewr ...

  3. 前端框架VUE----node.js的简单介绍

    一.什么是node.js? 它是可以运行JavaScript的服务平台,可以吧它当做一门后端程序,只是它的开发语言是JavaScript 二.安装 1.node.js的特性: - 非阻塞IO模型 - ...

  4. 自写Jquery插件 Tab

    原创文章,转载请注明出处,谢谢!https://www.cnblogs.com/GaoAnLee/p/9067017.html 每每看到别人写的Jquery插件,自己也试着学习尝试,终有结果,废话不多 ...

  5. Git 常用命令列表

    1 常用 $ git remote add origin git@github.com:yeszao/dofiler.git # 配置远程git版本库 $ git pull origin master ...

  6. Python实现京东自动登录

    配置好webdriver,用的是Chrome的 import cv2 import time import numpy as np from selenium import webdriver fro ...

  7. spring使用@Value标签读取.properties文件的中文乱码问题的解决

    最近测试某个老系统的时候,启动的时候发@Value注入的中文是乱码,文件使用GBK/UTF-8的时候均会出现乱码问题,但是spring配置文件里面注入的占位符并没有这个问题,bean文件设置了file ...

  8. GitHub客户端使用

    GitHub客户端使用 我们今天先讲解一下Github for windows(客户端)的使用方法,之后我们会以一个实例一步一步的来讲解Github. Github for windows(客户端)是 ...

  9. 07:vue定义路由

    1.1 定义路由 1.说明 1. 路由是单页面应用程序(SPA)的关键,Vue提供过来路由插件,使用这个路由就要安装这个插件 2. 安装: npm install vue-router 3. 依赖于v ...

  10. linux下安装与部署redis

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...