Organizations

12 results for 技巧
  • 字节运算艺术 编程语言常规都含有 int 类型, 而 int 类型最简单的日常仅仅作为 1+1 来做数值运算; 但是其中还有更多高阶玩法, 在编程当中涵盖大量实用技巧. 以下采用 Rust 编写处理示例 最简单的 int 分为: int32: 取值范围(-2147483648~2147483647),取值位(4字节), 位长度(32) uint32: 取值范围(0~4294967295),取值位(4字节), 位长度(32) 日常语言推算位: println!( "Int32 -> RANGE({}~{}), Byte({}) , Length({})", i32::MIN, i32::MAX, std::mem::size_of::<i32>(), i32::BITS, ); // Int32 -> RANGE(-2147483648~2147483647), Byte(4) , Length(32) println!( "Uint32 -> RANGE({}~{}), Byte({}) , Length({})", u32::MIN, u32::MAX, std::mem::size_of::<u32>(), u32::BITS, ); // Uint32 -> RANGE(0~4294967295), Byte(4) , Length(32) 这里就是 Rust 内部的获取数值进制位相关数值对象, 但是接下来后续知识点最好了解 进制换算 相关知识才能看得懂. 还需要说明 isize|size_t|usize|usize_t 这种类型, 该类型是和平台相关的; 如果在 32 位架构中定义为 unsigned int32, 在 64 位架构中定义为 unsigned long, 这是为了应对将来全面步入 64 位架构所必须设置的类型.
    技巧 Created Sun, 01 Oct 2023 14:03:14 +0800
  • 字体变色终端 常见于命令行终端会输出变色的字体,这种都是采用 \033[31m 起始特殊字符加上 \033[0m 回滚颜色指令来做字体变色处理, 常见于类似 Python 这样来处理终端颜色字体: GlobalColors = { 'red': '\033[31m', 'blue': '\033[94m', 'green': '\033[92m', 'yellow': '\033[93m', 'magenta': '\033[35m', 'cyan': '\033[36m' } """ 字体变色 """ def colored(strg, color): col = GlobalColors.get(color, None) if col: return col+str(strg)+'\033[0m' return strg """ 调用打印 """ if __name__ == '__main__': print("%s %%\r" % (colored('error!', 'red')), end="") 这样可以看到终端颜色字体输出不是常规的红色字体, 这种就是利用终端特殊字符来做的变色切换,其他语言基本上通用。 Rust 如果简单在 Rust 使用会发现输出异常: // 字体变色处理, 异常 println!("\033[31m{}\033[0m","hello.world"); 实际上这是因为 Rust 默认采用 utf8 编码处理, ‘\033’ 这个特殊字符直接输出成原始字符, 所以需要将其字符手动转化成 \x1b 处理.
    技巧 Created Fri, 29 Sep 2023 17:56:10 +0800
Previous