c - 获取整数的负号并将其存储为 char 的最佳方法是什么?
问题描述
如何获取整数的符号并将其存储在字符中?一种方法是:
int n = -5
char c;
if(n<0)
c = '-';
else
c = '+';
或者:
char c = n < 0 ? '-' : '+';
但是有没有办法在没有条件的情况下做到这一点?
解决方案
这将在 x86-64 上使用 gcc/clang 创建无分支代码:
void storeneg(int X, char *C)
{
*C='+';
*C += (X<0)*('-'-'+');
}
推荐阅读
- php - 在 Cpanel 中使用 Composer
- ionic-framework - 使用离子存储的存储不是持久的
- php - 每次购买的程序化成本
- python - 带字符串的多层 if 语句
- node.js - 在不刷新页面的情况下向帖子添加评论(如 Instagram)Node.js、Express、Mongoose
- php - 用于存储敏感数据的加密或密码术
- lua - 为什么 lua 解释器中的 -l 选项行为奇怪?
- javascript - 在不打开新连接的情况下发出 HTTP 请求
- c++ - 如何在 C++ 中处理大至 2^9000000 的整数
- python - 如何在 python 中处理 AssertError