相关疑难解决方法(0)

使用数字作为大小创建整数的char数组

我试图在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] = "";,它是有效的.当我尝试动态声明缓冲区大小时,我可以看到问题正在上升,但我真的想知道是否是实现此目的的一种方法.

c arrays printf digits itoa

7
推荐指数
2
解决办法
1942
查看次数

如何统计不同基数中的数字位数?

我正在使用不同基础的数字(基数为10,基数为8,基数为16等).我正在尝试计算每个数字中的字符数.

数: ABCDEF

位数:6

我知道基于对数的方法,但我遇到了一些问题.

  1. 此Python脚本输出无法正确计算1,000,000中3,969个数字中的正确位数.

  2. 我认为使用对数的方法可能相当慢

链接:

  • 这个C程序必须非常慢(如果我有一个非常大的数字怎么办?).它也不能处理不同基数的数字(例如,base-16).

  • 不是愚弄的这个,因为在OP问只有约基10


编辑:当然我可以计算一个字符串的长度,但最让我感兴趣的是,如果可以在没有常规字符串的情况下进行计算.我想知道可以帮助实现它的算法,只知道源基转换的基数.

Edit2: source-basebase-10,转换为的base可以是任何其他base.


我们如何计算不同基数中的数字位数?

如果我知道base-10中的数字,如何在不执行转换的情况下计算转换为base-16(base-8等)的相同数字的位数?

注意:一些Python或C代码将非常感激

c python algorithm base

6
推荐指数
1
解决办法
1762
查看次数

如何获取从C中的main传递的值的前2位数?

我的程序询问用户一年如2056年.所以在main中,我使用scanf.

但是,我有一个函数只需要该值的前2位数.

我已经尝试在函数本身scanf("%2d"...)中使用另一个scanf但是我不能在main中使用另一个scanf用于我的其他函数.

那我该怎么做呢?

c

4
推荐指数
1
解决办法
1万
查看次数

获取数字的位数

我有一个这样的数字:int num = 36729;我想得到组成数字的数字位数(在这种情况下是5位数).

我怎样才能做到这一点?

c

1
推荐指数
1
解决办法
516
查看次数

使用内联汇编计算数字的位数

如何使用 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)

delphi assembly inline-assembly

-1
推荐指数
1
解决办法
1560
查看次数

标签 统计

c ×4

algorithm ×1

arrays ×1

assembly ×1

base ×1

delphi ×1

digits ×1

inline-assembly ×1

itoa ×1

printf ×1

python ×1