二进制在计算机中的应用场景,二进制在项目中的使用场景

/**

* 将一个 int 分为两段,前 16 位存储一级菜单,分别是 美颜、美型、滤镜选项

* 第 17~24 位存储二级菜单,如美颜的 大眼、瘦脸等,美型选项的 瘦脸、大眼等

* 最后 8 位存储三级菜单,目前只有美妆选项使用到,如存储美瞳的几种种类,这个还没有集成呢

*/

public interface ItemGetContract {

int OFFSET = 16;

int MASK = ~0xFFFF;

int SUB_OFFSET = 8;

// 一级菜单

int TYPE_CLOSE = -1;

// 美颜

int TYPE_BEAUTY_FACE = 1 << OFFSET;

// 美型

int TYPE_BEAUTY_RESHAPE = 2 << OFFSET;

// 滤镜

int TYPE_FILTER = 5 << OFFSET;

// 二级菜单

// 美颜

int TYPE_BEAUTY_FACE_SMOOTH = TYPE_BEAUTY_FACE + (1 << SUB_OFFSET);

int TYPE_BEAUTY_FACE_WHITEN = TYPE_BEAUTY_FACE + (2 << SUB_OFFSET);

int TYPE_BEAUTY_FACE_SHARPEN = TYPE_BEAUTY_FACE + (3 << SUB_OFFSET);

int TYPE_BEAUTY_FACE_BRIGHTEN_EYE = TYPE_BEAUTY_FACE + (4 << SUB_OFFSET);

int TYPE_BEAUTY_FACE_REMOVE_POUCH = TYPE_BEAUTY_FACE + (5 << SUB_OFFSET);

int TYPE_BEAUTY_FACE_SMILE_FOLDS = TYPE_BEAUTY_FACE + (6 << SUB_OFFSET);

int TYPE_BEAUTY_FACE_WHITEN_TEETH = TYPE_BEAUTY_FACE + (7 << SUB_OFFSET);

// 美型

int TYPE_BEAUTY_RESHAPE_FACE_OVERALL = TYPE_BEAUTY_RESHAPE + (1 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_EYE = TYPE_BEAUTY_RESHAPE + (2 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_FACE_SMALL = TYPE_BEAUTY_RESHAPE + (3 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_FACE_CUT = TYPE_BEAUTY_RESHAPE + (4 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_CHEEK = TYPE_BEAUTY_RESHAPE + (5 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_JAW = TYPE_BEAUTY_RESHAPE + (6 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_NOSE_LEAN = TYPE_BEAUTY_RESHAPE + (7 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_NOSE_LONG = TYPE_BEAUTY_RESHAPE + (8 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_CHIN = TYPE_BEAUTY_RESHAPE + (9 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_FOREHEAD = TYPE_BEAUTY_RESHAPE + (10 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_EYE_ROTATE = TYPE_BEAUTY_RESHAPE + (11 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_MOUTH_ZOOM = TYPE_BEAUTY_RESHAPE + (12 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_MOUTH_SMILE = TYPE_BEAUTY_RESHAPE + (13 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_DECREE = TYPE_BEAUTY_RESHAPE + (14 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_DARK = TYPE_BEAUTY_RESHAPE + (15 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_EYE_SPACING = TYPE_BEAUTY_RESHAPE + (16 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_EYE_MOVE = TYPE_BEAUTY_RESHAPE + (17 << SUB_OFFSET);

int TYPE_BEAUTY_RESHAPE_MOUTH_MOVE = TYPE_BEAUTY_RESHAPE + (18 << SUB_OFFSET);

interface View extends IView {

}

abstract class Presenter extends BasePresenter {

/**

* 根据类型返回一个 {@link ButtonItem} 列表

*/

public abstract List getItems(int type);

}

}

如上代码转换成 二进制后:

一个int 占4个字节32位,转为二进制为:

美颜 定义为1, 左移16位

美型 定义为2,左移16位

滤镜 定义为5,左移16位

70822c243ece

二进制1.png

70822c243ece

二进制2.png

二进制之前的& | ~ ^ 运算请查看我的

StateMachine项目

封装了位运算符,使用更加方便

关注我的github

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值