问题标签 [itoa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何读取二进制数据,将其转换为 int,然后将其转换回 C++?
我正在尝试打开一个 wav 文件,读取它,将缓冲区转换为整数数组,然后将其转换回来并写入。
目前,这打印:
表示它在转换过程中改变了数据。我怎样才能让它正常工作?
经过一些建议,并学习我可以对char
变量进行计算,我重新编写了代码,现在是:
但是,在播放(在 Windows Media Player 中)时,它不会播放,所以它显然不是我想要的原始文件。
c - 从 ADC 转换 uint16 翻转为负
我想要做的: 将生成的 16 位数字(在组合两个 8 位 #s 之后)变成一个字符串,以与我的串行发送功能一起使用
问题: 使用 itoa 时,一旦通过中间点(从第 15 位传递到第 16 位),结果就会变为负数,因此它本质上是使用第 16 位作为符号位(不足为奇),我的数字应该是无符号的. sprintf 也这样做。请注意, itoa(16) 可以正常工作,因为它应该。
硬件: atmega16 微处理器 (AVR c) 通过 SPI 总线连接的 16 位外部 ADC(将 ADC 结果作为两个 8 位数字发送)
编码:
这样做的结果是它打印了一个 15 位有符号的而不是原始的 uint16。我一直在使用 itoa 打印 10 位内部 ADC 的结果,但是这么简单的事情要花这么长时间,这让我很生气。
我真的很感谢你的时间。
c++ - itoa() 的 C++ 标准替代方法,用于将 int 转换为以 10 为底的 char*
将整数转换为以 10 为底的 char*
ConCounter 是整数,ID 是 char*,10 是基数
它说 iota 不是 std 的成员,没有 std 它不会被声明。我知道这是一个非标准函数,但我包含了它的所有库,但它仍然看不到它。
有什么办法可以做到以上几点?有什么快速的一号线吗?我尝试了以下方法;
c++ - 有人可以告诉我这段代码有什么问题吗?
它一直运行到我使用 op 变量的部分,我尝试在 main 函数中复制和粘贴它完美地工作,为什么它不能在 OpCode 函数中工作?!提前致谢
string - itoa 的问题
我正在尝试将一些数据从微控制器发送到 PC。数据是来自不同端口的 10 位 ADC 转换(例如从 0-1023 的数字)。我已将此数字保存为整数,现在我想使用 itoa 或类似函数将其转换为 ascii 字符串。我的问题是我在查找 itoa 函数的文档时遇到了一些麻烦。例如,如果我从 AD 转换中收到数字“1011”。然后我可以按如下方式调用 itoa
ADC_string 中的结果将是“1 0 1 1 '\0'”,例如 1011;但是假设我从 AD 转换中收到数字 5,那么结果将是“5 '\0' Null Null Null”(如果我了解 itoa 如何正常工作)。我本来希望结果是“0 0 0 5 '\0'”。这样做的原因是我想将结果放在不同位置的大字符串中。例如
对于另一个端口(索引 5 和 6 处的 large_string 中存在其他内容)
换句话说,根据我上面的示例,我希望在 large_string 中有以下内容。
(我当时在一个端口进行AD转换,这就是我可以重用ADC_string的原因)。large_string 稍后将发送到 PC,这就是我要避免意外字符串终止符的原因。
有没有人知道如何以一种很好的方式实现这一点?我很感谢任何建议!
c - 如何在 C 中使用 itoa
谁能告诉我如何itoa
在 C 中使用函数?
原型是:
我认为这int_Val
是我要转换的值
char*_DstBuf
,是我要存储结果的字符串但是什么是int_Radix
?
c++ - 如何添加多位数 int 和 char,其中输出为 int + char
这就是我到目前为止所拥有的
头文件内容如下:
调用程序:
输出在哪里:
但它只适用于个位数整数
所以如果我尝试添加 1000 + X,它仍然会返回 1 + X,我不知道为什么。
有人可以指出我正确的方向吗?任何帮助表示赞赏,谢谢。
使用 VS 2010
vbscript - VBScript 将整数转换为字符串 (itoa)
我已经编写了一个方法来获取整数并将其转换为十进制、十六进制或二进制,具体取决于您使用注释选择的内容。我将在稍后建立一个选择。我遇到的问题是选择了错误的值,我认为这与模运算符返回错误的值有关。这可能是一个舍入问题,因为我似乎总是偏离 1 位,但不是字符串中的每个字符。任何帮助,将不胜感激。例如,现在它设置为十进制值。因此,如果您运行它并输入 1705,它应该返回 1705,但它会返回 2705。十六进制和二进制也好不了多少。
c++ - 将(很多!)数字转换为字符串而不在 Qt 中分配的正确方法
tl;博士
我想QString::number(int)
每秒调用很多次。它很慢:似乎每次都分配一个新字符串。尝试setNum
在相同的字符串上使用,但仍然没有乐趣。
原始的长问题:
问题
我有一大堆数字(比如整数),我想将它们格式化为文本,然后(可能不会立即)写入文件。天真的方式看起来大约是这样的:
在我的机器上处理150000个整数大约需要280 毫秒,这对我来说似乎很多。我想这是因为被调用了 150000 次并且每次都分配新的字符串。当我尝试使用(不分配内存)时,这被证实是问题的根源。QString::number
itoa
可能,但不是 Qt[not-cute]
解决方案
对于相同的150000 个整数(大约快4 倍),这大约需要70 毫秒,这对我来说现在是可以接受的(我想我也可以用字符串连接做一些事情,但是让我们把这个问题放在这个问题之外)
但我不喜欢我必须使用一些不标准的、可能已弃用、可能不可移植的2函数(并不是说这看起来很丑)。
然后我记得还有一个实例方法:QString::setNum
. 我希望我可以使用与 with 相同的模式itoa
:只分配一个字符串并每次修改它。
理想但不可行的解决方案
不幸的是,这并没有太大的区别QString::number
:再次大约 280 毫秒,好吧,也许是 250 毫秒,但仍然太多。
所以,恭喜你到达这里:) 最后......
问题
- Qt 专家会建议我做什么?
itoa
尽管在其他芬芳的 C++/Qt 代码中有明显的 C 气味,还是闭嘴使用? - 或者我能以某种方式说“来吧,Qstring,把这个数字吃到你身上”?
- 我想知道为什么
setNum
没有做到这一点?
脚注:
1在实际代码中,我不仅有 150000 个整数,还有 50000 个整数的三元组,我还在'\t'
它们之间添加了这些整数。这是与我的实际代码的唯一区别,我想这并不重要:这里我只对QString::number
vs的性能感兴趣itoa
。
2实际上,我很惊讶 MinGW 也有_itoa_s
与 Visual Studio 一样的行为,但我仍然有一些尴尬的感觉,在我优美的 Qt 代码中使用这样一个肮脏的函数会降低它的可移植性。如我错了请纠正我。
c++ - 如何从三个整数(或者可能是 git/SVN commit/rev.string)生成 constexpr 版本字符串?
说我有
而且我要
要返回"1.10.0"
此示例中的等价物,我该怎么做?
我想我需要这两个,在constexpr
:
- 整数到字符串的转换
- 字符串连接
constexpr
这个问题纯粹是学术问题,除了“有可能”之外,我认为实际拥有它几乎没有用。我只是看不出这会如何。我愿意接受适用于 GCC 4.9 和 Clang 3.4/3.5 的 C++1y 解决方案。
我相信我在一些日本博客上几乎找到了我想要的东西:
我会看看我能用这些做什么,也许当我对结果感到满意时,我自己会回答这个自称有趣的问题。