如果我有号码88,我如何将00添加到结尾并将其变为8800?按位移位是我能想到的唯一方法,但它不起作用。它完全改变了数字。
答案 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)
#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;
}