如何在C 中分析二进制数字
How can i analyse a binary number in c++
本文关键字:二进制数字 更新时间:2023-10-16
我有一个二进制号,例如 1011
,我想将此数字拆分为以下数字:
- 1000
- 0000
- 0010
- 0001
这样,如果我应用(或(" |"操作员,它将产生原始数字:
1000 | 0000 | 0010 | 0001
= 1011
。
简单的位和带有带有您要设置为1
的位置的掩码的数字。例如
uint8_t input;
uint8_t least_significant_digit = input & 1;
如有必要,您可以用循环产生它们。
uint8_t input;
uint8_t output[8];
for (int i = 0; i < 8; ++i) {
int mask = 1 << (7 - i); // most significant digit first as in the example
output[i] = input & mask;
}
我希望我的名字比output
更好,但我不知道这是什么。您可以根据实际需要多少位数字来播放循环条件的值。确保不要使其大于所讨论的类型。对于签名类型,您(理论上(使用此方法提取符号位,因为将位转移到标志位是不确定的行为。
相关文章:
- 以十为基数的数字到布尔数组,该数组要求二进制/基数为 2 的数字
- 尝试将数字写入二进制文件时引发异常
- 如何将uint8_t的二进制表示形式读取为数字
- 错误含义;以二进制形式打印数字
- 将非数字字符串存储为二进制整数
- Rcpp - 用二进制函数转换数字向量?
- 如何在C 中分析二进制数字
- 编写二进制数字时出乎意料的结果[C ]
- 如何在包含数字的.bmp(二进制图像)中执行组件标记9 4 3 6
- C/C++ 方法中最快/最短计算二进制数字总和/又名二进制中的 1 数
- 分开二进制数字的数字
- 如何使用C 将二进制数字的字符串转换为其签名的十进制表示
- 如何在没有循环的二进制数字表示中只计算1位
- 在二进制数字中找到第一个位
- 在C 中添加二进制数字
- 确定二进制数字
- 有没有一种方法可以将表示为字符串的数字转换为等效的二进制数字
- 找出一个特定整数有多少个二进制数字
- 将整数更改为二进制数字字符串
- 修改我的代码中两个二进制数字的加法