c - 将 printf 转移到某个变量
问题描述
我已将数组的元素传输到 printf需要传输到某个变量的字符串/位,因为我需要使用此文本/字符串(01000001)并将其转换为 char(位 => char)。
//main
bool bits2[8] = {0,1,0,0,0,0,0,1};
printf("%c\n", decode_byte(bits2));
//function
char decode_byte(const bool bits[8]){
int i;
for (i=0; i<8; i++){
printf("%d", bits[i]);
}
return 0;
}
解决方案
decode_byte
应该只从二进制表示转换为实际整数:
#include <stdbool.h>
#include <stdio.h>
char decode_byte(const bool bits[8]) {
unsigned char c = 0;
for (int i = 0; i < 8; i++) {
c = (c << 1) | bits2[i];
}
return c;
}
int main() {
bool bits2[8] = { 0, 1, 0, 0, 0, 0, 0, 1 };
printf("%c\n", decode_byte(bits2));
return 0;
}
程序应该输出A
,这是编码为的 ASCII 字符65
,其二进制表示为01000001
.
推荐阅读
- java - 在 JavaFX 中为多个 TextField 编写 MouseClicked 事件的最简单方法
- ruby-on-rails - 通过向后读取来反转 Ruby 中的字符串
- php - 如何在 preg_match 中添加可选的验证模式?
- java - 使用 Apache POI 刷新数据透视表时,getPivotCacheDefinition 返回空值
- botframework - 如何在 botframework 中获取信使的页面访问令牌
- c# - 在带有 Razor 页面的 ASP.NET Core MVC 中使用 Handler 设置 Kendo UI Grid DataSource 读取属性
- ruby-on-rails - 如何更新rails中的关联记录
- amazon-web-services - 在 AWS 上,每天运行 AWS CLI 命令
- c# - 显示数字的因数
- html - 图像 HTML 在 Wordpress 的博客文章(和 amp 版本)中消失