将整数写成十六进制、八进制和二进制有什么意义?
What is the point of writing integer in hexadecimal, octal and binary?
我很清楚,可以在 Swift 中为数组或常量赋值,并以不同的格式表示这些值。
对于整数:可以声明为十进制、二进制、八进制或十六进制。
对于 Float 或 Double:可以用 十进制或十六进制 的格式声明,也可以使用指数。
例如:
var decInt = 17
var binInt = 0b10001
var octInt = 0o21
var hexInt = 0x11
以上所有变量给出相同的结果,即 17。
但是有什么收获呢?为什么要费心使用十进制以外的那些?
有一些符号可以让人们更容易理解,即使最终结果是一样的。例如,您可以考虑颜色表示法(十六进制)或文件权限表示法(八进制)等情况。
代码最好用最有意义的方式来写。
使用最适合您的程序域的数字格式只是一个例子。您不想掩盖特定领域的细节,并希望尽量减少代码 reader 的脑力劳动。
另外两个例子:
- 不要简化计算。例如:要将以 1/10000 弧分为单位的换算整数值转换为以度为单位的浮点数,请不要将转换因子写为
600000.0
,而是写为 10000.0 * 60.0
.
- 选择与您的数据性质相匹配的代码结构。例如:如果您有一个具有两个 return 值的函数,请确定它是对称情况还是非对称情况。对于对称的情况,总是写一个完整的
if (condition) { return A; } else { return B; }
。写 if (condition) { return A; } return B;
是一个常见的错误(仅仅是因为 'it works')。
意义很重要!
我很清楚,可以在 Swift 中为数组或常量赋值,并以不同的格式表示这些值。
对于整数:可以声明为十进制、二进制、八进制或十六进制。
对于 Float 或 Double:可以用 十进制或十六进制 的格式声明,也可以使用指数。
例如:
var decInt = 17
var binInt = 0b10001
var octInt = 0o21
var hexInt = 0x11
以上所有变量给出相同的结果,即 17。
但是有什么收获呢?为什么要费心使用十进制以外的那些?
有一些符号可以让人们更容易理解,即使最终结果是一样的。例如,您可以考虑颜色表示法(十六进制)或文件权限表示法(八进制)等情况。
代码最好用最有意义的方式来写。
使用最适合您的程序域的数字格式只是一个例子。您不想掩盖特定领域的细节,并希望尽量减少代码 reader 的脑力劳动。
另外两个例子:
- 不要简化计算。例如:要将以 1/10000 弧分为单位的换算整数值转换为以度为单位的浮点数,请不要将转换因子写为
600000.0
,而是写为10000.0 * 60.0
. - 选择与您的数据性质相匹配的代码结构。例如:如果您有一个具有两个 return 值的函数,请确定它是对称情况还是非对称情况。对于对称的情况,总是写一个完整的
if (condition) { return A; } else { return B; }
。写if (condition) { return A; } return B;
是一个常见的错误(仅仅是因为 'it works')。
意义很重要!