我试图在C中创建一个char数组,用int的数字填充它,但int可以是任意数量的数字.
我正在使用一个名为的创建函数getDigits(int num),它返回int所具有的多个数字.
char buffer[getDigits(number)] = "";
snprintf(buffer, sizeof(buffer),"%d",number);
Run Code Online (Sandbox Code Playgroud)
但是当我使用gcc编译时,它返回:
error: variable-sized object may not be initialized
我已经尝试了一切.当我宣布它时char fileSizeStr[5] = "";,它是有效的.当我尝试动态声明缓冲区大小时,我可以看到问题正在上升,但我真的想知道是否是实现此目的的一种方法.
我正在使用不同基础的数字(基数为10,基数为8,基数为16等).我正在尝试计算每个数字中的字符数.
例
数:
ABCDEF位数:6
我知道基于对数的方法,但我遇到了一些问题.
此Python脚本输出无法正确计算1,000,000中3,969个数字中的正确位数.
我认为使用对数的方法可能相当慢
链接:
编辑:当然我可以计算一个字符串的长度,但最让我感兴趣的是,如果可以在没有常规字符串的情况下进行计算.我想知道可以帮助实现它的算法,只知道源基和转换的基数.
Edit2: source-base是base-10,转换为的base可以是任何其他base.
我们如何计算不同基数中的数字位数?
如果我知道base-10中的数字,如何在不执行转换的情况下计算转换为base-16(base-8等)的相同数字的位数?
注意:一些Python或C代码将非常感激
我的程序询问用户一年如2056年.所以在main中,我使用scanf.
但是,我有一个函数只需要该值的前2位数.
我已经尝试在函数本身scanf("%2d"...)中使用另一个scanf但是我不能在main中使用另一个scanf用于我的其他函数.
那我该怎么做呢?
如何使用 Delphi 的内联汇编器获取数字的位数?
例如 :
13452 should return 5
1344 should return 4
9721343 should return 7
Run Code Online (Sandbox Code Playgroud)
等等
我的尝试是这样的:
function CalculateLength(Number : integer) : Integer;
begin
asm
PUSH Length(Number)
MOV @Result, EAX
end;
end;
Run Code Online (Sandbox Code Playgroud)