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. IntelliJ IDEA的使用之调试方法

    不管学什么要及时复习和练习!!不然就会忘掉,有个输入输出的过程 IntelJ IDEA的使用之断点调试 1)添加断点:直接在代码的最左侧点一下就行,出现红色圈圈. 2)单步运行:mac中F7.F8有其 ...

  2. 今日总结(linux和plsql)

    #case ...when语句(根据字段不同值显示不同结果) ##1)case ...when语句的使用方法一: 语法格式: case column_name when value1 then res ...

  3. The logback manual #03# Configuration

    索引 Configuration in logback Automatically configuring logback Automatic configuration with logback-t ...

  4. Golang框架beego电影网爬虫小试牛刀

    学习了一段时间golang,又参考课程学习了beego开发网站爬虫,项目的目录结构是: 采集的目标是豆瓣网电影,入口地址是:https://movie.douban.com/subject/19008 ...

  5. fjwc2019 D2T1 直径 (构造)

    #181. 「2019冬令营提高组」直径 (这题构造题是我考场上唯一一A的题........) 先看这个特殊的Subtask4 Subtask 4(20pts):$\sqrt{1+8k}$​​​ 为整 ...

  6. Ubuntu 部署 nginx

    Ubuntu 部署 nginx  apt-get install nginx

  7. mysql 5.6二进制安装

    1.  进入用户家目录创建tools文件夹 # cd ~ #mkdir tools 2.下载MySQL5.6二进制包(搜狐镜像里有各版本下载http://mirrors.sohu.com/mysql/ ...

  8. python 之 函数的参数

    函数的参数好几种类型:包括位置参数.默认参数.可变参数.关键字参数.命名关键字参数. 廖大神python学习笔记,大神网站:百度搜索“廖雪峰的官网” 1.位置参数:调用函数时根据函数定义的参数位置来传 ...

  9. js获取对象的key

    var obj = {"name":"名字","age":"18"};var temp = "";f ...

  10. 识别简单的答题卡(Bubble sheet multiple choice scanner and test grader using OMR, Python and OpenCV——jsxyhelu重新整编)

    该博客转自www.pyimagesearch.com,进行了相关修改补充. Over the past few months I've gotten quite the number of reque ...