关于代码 ij = I::oO(0xB81l);

本文介绍了在Visual Studio 2012中如何区分易混淆字符,并通过一个C++代码示例展示了如何使用特定的字体来提高代码可读性。示例代码包括命名空间、函数调用及十六进制数值转换。

在VS2012,打开“工具菜单”中的“选项”。在左侧菜单中“字体和颜色”部分,可以发现代码

ij = I::oO(0xB81l);

191410_FnNv_1425762.png

这句代码是VisualStudio里的一个示例,包含了字符对i和j、:和;、oO和0、B和8、1l和I。有些字体这几组字符(特别是0和O)很难区分。

(我选了等宽字体Consolas作为我VS里文本编辑器的字体,这个字体里0里面比O多一个斜线)

为了探究这段代码的含义,我们做个实验:

1)在VS2012中建立一个C++控制台应用程序

191631_mJUg_1425762.png

191632_vhGR_1425762.png

191635_bXXB_1425762.png

2)输入下面代码

// Just4Fun.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

namespace I
{
    int oO(int num)
    {
        return num;
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    int ij;

    ij = I :: oO(0xB81l);

    printf("%d\n", ij);  //输出ij的值
    char c = ' ';        //读取一个字符赋到c中
    scanf_s("%c", c);
    return 0;
}

3)程序运行结果

191934_g7Ep_1425762.png

可以看到运行结果为2945

代码含义:ij是一个被赋值的变量。I是一个命名空间,oO为该命名空间下的一个函数,0xB81l为该函数的参数。0xB81即十六进制数B81,转化为十进制后值为11*16*16+8*16+1=2945,后面的l表示此数为long类型。

转载于:https://my.oschina.net/Tsybius2014/blog/293870

min Z = 154 * ∑(i=1 to 10) ∑(j=1 to 5) C_ij * X_ij 约束条件: 1. 每个卸点j的产量要求: ∑(i=1 to 10) X_ij >= d_j / 154, j=1,2,3,4,5 2. 时间约束: 5 * K_ij <= (15/7)*C_ij + 8, ∀i,j 3. 质量约束(仅矿石卸点j=1,2,5): 0.285 * ∑(i) X_i1 <=(i) X_i1 * e_i <= 0.305 * ∑(i) X_i1 (对于j=1) 0.285 * ∑(i) X_i2 <=(i) X_i2 * e_i <= 0.305 * ∑(i) X_i2 (对于j=2) 0.285 * ∑(i) X_i5 <=(i) X_i5 * e_i <= 0.305 * ∑(i) X_i5 (对于j=5) 4. 铲位数量约束: ∑(i=1 to 10) a_i <= 7 5. 物料约束(铲位i的矿石和岩石总量约束): ∑(j in {1,2,5}) X_ij <= D_i^{(1)} / 154 (矿石卸点) ∑(j in {3,4}) X_ij <= D_i^{(2)} / 154 (岩石卸点) 6. 铲位使用约束(如果铲位i没有电铲,则不能运输): ∑(j=1 to 5) X_ij <= (D_i^{(1)} + D_i^{(2)}) / 154 * a_i ∑(i=1 to 10) ∑(j=1 to 5) K_ij<=20 K_ij=((15/7)*C_ij + 8)*X_ij/475 7. 变量类型: a_i ∈ {0,1} (二进制变量) X_ij >= 0 (连续变量) 数据: C_ij 矩阵(10个铲位i,5个卸点j): j=1 j=2 j=3 j=4 j=5 i=1: 5.26, 1.90, 5.89, 0.64, 4.42 i=2: 5.19, 0.99, 5.61, 1.76, 3.86 i=3: 4.21, 1.90, 5.61, 1.27, 3.72 i=4: 4.00, 1.13, 4.56, 1.83, 3.16 i=5: 2.95, 1.27, 3.51, 2.74, 2.25 i=6: 2.74, 2.25, 3.65, 2.60, 2.81 i=7: 2.46, 1.48, 2.46, 4.21, 0.78 i=8: 1.90, 2.04, 2.46, 3.72, 1.62 i=9: 0.64, 3.09, 1.06, 5.05, 1.27 i=10:1.27, 3.51, 0.57, 6.10, 0.50 e_i(铁含量,以小数表示): i=1:0.30, i=2:0.28, i=3:0.29, i=4:0.32, i=5:0.31, i=6:0.33, i=7:0.32, i=8:0.31, i=9:0.33, i=10:0.31 D_i^{(1)}(矿石总量): i=1:9500, i=2:10500, i=3:10000, i=4:10500, i=5:11000, i=6:12500, i=7:10500, i=8:13000, i=9:13500, i=10:12500 D_i^{(2)}(岩石总量): i=1:12500, i=2:11000, i=3:13500, i=4:10500, i=5:11500, i=6:13500, i=7:10500, i=8:11500, i=9:13500, i=10:12500 d_j(卸点产量要求): j=1:12000, j=2:13000, j=3:13000, j=4:19000, j=5:13000 添加∑(j=1 to 5)Xij<=96(i=1,2,3,4,5,6,7,8,9,10) ∑(i=1 to 10)Xij<=160(i=1,2,3,4,5) 给出MATLAB求解代码
07-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值