附加数字C编程

时间:2014-04-21 19:55:58

标签: c

如果我有号码88,我如何将00添加到结尾并将其变为8800?按位移位是我能想到的唯一方法,但它不起作用。它完全改变了数字。

4 个答案:

答案 0 :(得分:2)

按位移位只能用于乘以2的幂,你只需要乘法。跑吧:

printf("%d", 88 * 100);

打印8800。

如果您想要做的只是在数字末尾添加00,您可以改为:

printf("%d00", 88);

答案 1 :(得分:2)

单独使用按位移位运算符无法完成所有操作。它在数学上不可能直截了当地说出来。但是如果你仍然坚持你可以做一些像(88 <&lt; 6)+(88 <&lt; 5)+(88&lt;&lt; 2)

正如评论所指出的那样,只需将您的数字乘以100即可获得答案。

答案 2 :(得分:1)

因此,您从一个文件中读取,并希望为其添加两个零。我可以看到两种方法:字符串和数字。

字符串方面,您可以使用

strcat(inputedText, "00");

(或只是printf,或其他可能的解决方案)

在数字上,您可以将输入的数据从文件转换为int,然后将其乘以100.如果需要打印,Vality的答案会显示如何执行此操作。

答案 3 :(得分:0)

直播:http://ideone.com/wiW5Zb

#include <stdio.h>
#include <stdint.h>

int64_t calc(int64_t value)
{
    int64_t t = 1;
    while(t < value)
        t *= 10;

    return t;
}

int64_t concatnum(int64_t a, int64_t b)
{
    return (a * calc(b)) + b;
}

int main()
{
    int a = 1000;
    int b = 11;

    int c = concatnum(a, b); //b must be greater 10.

    printf("%d", c);
    return 0;
}