问题标签 [atoi]
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.
java - 使用 byte[] 的 Java 快速 atoi
我正在开发一个应该读取和处理平面文件的应用程序。这些文件并不总是对记录中的每个字段使用一致的编码,因此决定我们应该读/写字节并避免将它们转换为字符串的必要解码/编码。
但是,很多这些字段都是简单的整数,我需要验证它们(测试它们是否真的是整数并且在一定范围内)。我需要一个接收 byte[] 并将其转换为 int 的函数。我假设所有数字都是纯ASCII。
我知道我可以通过首先将 byte[] 转换为 CharBuffer,解码为 ISO-8859-1 或 UTF-8,然后调用 Integer.parseInt() 来做到这一点,但这似乎有很多开销,而且性能很重要。
所以,基本上我需要的是 atoi() 的 Java 等价物。我更喜欢 API 函数(包括 3rd 方 API)。此外,该函数应该以某种方式报告错误。
作为旁注,我在表示日期/时间的字段上遇到了同样的问题(虽然这些更罕见)。如果有人能提到一些用于 Java 的快速类 C 库,那就太好了。
websocket - 将 io 字符串转为 int Atoi 无效参数
我正在尝试从 Go 语言的 WebSockets 连接中解析一个字符串。我正在实现连接的两端,因此数据格式的规范仅取决于我。
由于这是一个简单的应用程序(通常用于学习目的),我想出了ActionId Data
,其中 ActionId 是uint8
. BackendHandler
是 WebSocket Connection 中每个请求的处理程序。
平台信息
代码:
所有输出:(注意我用于检查的 Println)
我找不到启动此错误的代码,只有定义错误代码的位置(取决于平台)。我很欣赏改进我的代码的一般想法,但主要是我只想解决转换问题。
这与我的缓冲区-> 字符串转换和切片操作(我不想使用 SplitAfter 方法)有关吗?
编辑
此代码重现了该问题:
该文件input
必须包含0 2\r\n
(取决于文件结尾,它在其他操作系统上可能看起来不同)。可以通过为 reslice 添加结束索引来修复此代码,这样:
c - 在C中将字符作为整数添加到数组中
我正在尝试将整数添加到 C 中的数组中。但是我正在从文件中读取字符,因此我必须先将它们转换为整数。出于某种原因,我的程序在停止工作之前甚至无法启动。我认为这是一个转换问题,但我是 C 新手。
新的编辑代码:
测试.txt
有人指出我正确的方向会很棒。
c - 数组值发生变化
所以我有两个问题:
我正在使用 netbeans 对此进行编码。
首先是我在 c.sArr 中设置的数组值从 7 变为某个随机数,我不知道为什么。
第二个是当我尝试在 netbeans 中运行调试时,代码给了我一个段错误,而当我正常运行它时却没有。它在 atoi 函数处给出了段错误。
这里发生了什么?
和
另一个文件是:
匆忙编码,请原谅奇怪的调试语句。
谢谢
c - 如何使用 atoi() 将 int 类型转换为 Int32
我有一段 C 代码:
它抛出一个错误:
我不知道为什么?你可以帮帮我吗?
可能是#include
s 的问题:
sys/socket.h
netinet/in.h
arpa/inet.h
stdio.h
stdlib.h
string.h
strings.h
c - C:解析由字符分隔的数字字符数组并将数字转换为整数
我对序列比对程序(这是一个生物信息学项目)创建的一些字符串有疑问。我正在尝试向解析对齐文件的现有 C 程序添加附加功能,但在解析程序创建的“不匹配”字符串时遇到了一些问题。添加一些上下文,这里是一个对齐字符串的例子:
example = "28G11AC10T32";
下面是如何解释字符串:前 28 个碱基与序列匹配,然后是“G”错配(第 29 个碱基),接下来的 11 个碱基匹配(第 40 个碱基),一个“A”错配(共 41 个碱基) )、“C”不匹配(总共第 42 个碱基)等等……
我需要找出不匹配的基本位置(即,字符串有一个字符而不是数字)并将其存储到一个 int 数组中,以便我可以在以后的子程序中查找它。
所以这就是我的问题发挥作用的地方。我已经编写了一个我“认为”可以解析出来的子例程,但是我从输出中得到了一个非常奇怪的工件。注意:请原谅我糟糕而混乱的代码!我无论如何都不是 C 程序员,而且我的培训也不是计算机科学!
所以,我的问题是,当我到达上面评论过的部分时(“这是我得到错误的地方”),我的“pre”字符串包含数字乘以 10。例如,使用上面列出的示例字符串,循环第一次到达该区域时,我希望 pre 包含“28”,但它包含“280”!当我使用 atoi 转换字符串时,它比我预期的要高十倍。
是否有一些我遗漏的东西或 C 中的一些我不知道的字符数组约定?预先感谢您的回复。
arrays - 将数字从标准输入获取到 C 中的数组
我正在尝试将数字从标准输入获取到数组。stdin 中的第一个数字是数组中元素的数量(数字可以是任何 int)。我这样做是为了得到第一个数字:
然后创建一个大小为 n 的数组。现在我需要完成所有其余的
并将数字添加到数组中。数字由 \t 分隔,有时也由 \n 分隔。我该怎么做?我已经思考了一个小时,但仍然没有工作代码。有什么帮助吗?谢谢!
c - 无法用 C 中的指针计算十六进制转换
所以我对此感到非常沮丧,并且觉得弄清楚我做错了什么的唯一方法就是问你们这些好人。我正在尝试将一串字符(包含数值)转换为十六进制。这是我的代码(请注意,我还没有将 10-15 的开关设置为字母;我只是想确保在运行此代码时返回整数值……不走运):
例如,输入 300 返回 ,@
我也试过:
它为 300 返回一个十六进制值 3fa844e0 ,这显然也是错误的。任何帮助表示赞赏,我也需要对八进制执行此操作,因此我必须弄清楚这个概念并看看我做错了什么。
c - C 字符值算术
我一直在阅读“The C Programming Language”这本书学习 C,我偶然发现了s[i] - '0'
他们所说的算术,它给出了存储在 s[i] 中的字符的数值。我不是很明白,它怎么能通过减法给出值呢?注意 这在 atoi 函数中使用,该函数将一串数字转换为其等效的数字。谢谢
python - 在 Python 中连接两个数字的最快方法
假设你在 Python 中有两个字符串(只有数字),比如字符串 a 和字符串 b。产生数字 c = ab(因此是整数部分和 b 小数部分)的最快方法是什么?