华为机试——数字字符串转二进制

C_C++_XY_09.数字字符串转二进制

  • 题目描述:

输入一个三个数字的字符串,请将此串进行如下整理:

将字符串转换成数字,转换为二进制数,如果倒数第三位是“0”,则输出“0”,如果是“1”,则输出“1”。

比如,输入字符串“240”,转换为二进制为“11110000”,它的倒数第三位是“0”,所以输出是“0”.

  • 要求实现函数:

void ArrangeString(const char *pInputStr, long lInputLen, char *pOutputStr);

· 【输入】 pInputStr: 输入字符串

· lInputLen: 输入字符串长度

· 【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

· 【注意】不用考虑输入串为空,非数字等异常

  • 示例

输入:“000”

输出:“0”

输入:“251”

输出:“0”

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

#include <iostream>
#include <stdlib.h>
#include <bitset>
using namespace std;
 
void ArrangeString(const char *pInputStr, long lInputLen, char *pOutputStr)
{
    if ((pInputStr == NULL) || (lInputLen <= 0) || (pOutputStr == NULL))
    {
        return;
    }
 
    int num = atoi(pInputStr);
    bitset<32> b(num);
    if (b[2] == 1)
    {
        *pOutputStr = '1';
    }
    else
    {
        *pOutputStr = '0';
    }
 
    pOutputStr++;
    *pOutputStr = '\0';
}
//void ArrangeString(const char *pInputStr, long lInputLen, char *pOutputStr)
//{
//     if ((pInputStr == NULL) || (lInputLen <= 0) || (pOutputStr == NULL))
//     {
//         return;
//     }
//
//     int num = atoi(pInputStr);
//     if ((num >> 2) & 0x01 == 1)
//     {
//         *pOutputStr = '1';
//     }
//     else
//     {
//         *pOutputStr = '0';
//     }
//
//     pOutputStr++;
//     *pOutputStr = '\0';
//}
 
int main() {
    const char *pInputStr = "251";
    char pOutputStr[10];
    ArrangeString(pInputStr, 3, pOutputStr);
    cout << pOutputStr << endl;
    return 0;
}

转载于:https://www.cnblogs.com/helloweworld/p/3193902.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值