C语言将10101这样的字符串转换成二进制格式?

查看:306
本文介绍了C语言将10101这样的字符串转换成二进制格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在用ARDUINO单片机写程序,现在遇到个问题。

有个字符串:

char strTemp[8];

它的内容是10101010.

现在想把这个字符串转换成二进制格式,保持10101010这个字面值不变,也就是变成B10101010。C语言里没有类型强制转换吧?

比如有个变量:

byte bResult;

把字符串10101010转换后赋值给它,使bResult的值为B10101010.

请问该怎么写?谢谢!


最新进展

原来标准C没有byte这个类型,怪不得很多大神都不清楚。byte表示一个字节,对应C的unsigned char。


最新进展

想到解决方案了:遍历字符串,判断字符如果是1就当前位置1,然后向右位移1位继续下一个字符。最后就能得到一个byte类型跟字符串字面值一致的二进制值了。

解决方案

你应该是想把一个由0和1这两个字符组成的字符串转成对应的整数吧,比如从'10101010'得到170:

int result = 0;
for (int i = 0; i < 8; i++) {
    result |= (strTemp[i]-'0') << (7-i);
}

这篇关于C语言将10101这样的字符串转换成二进制格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆