Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将用户输入读入为整数

将用户输入读入为整数
EN

Stack Overflow用户
提问于 2017-05-08 14:23:17
回答 1查看 950关注 0票数 0

我编写了一个汇编程序(x86_64 Linux ),该程序将整数打印到控制台,基于该算法建议我在这个post中的注释,基本上如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
divide number x by 10, giving quotient q and remainder r
emit r
if q is not zero, set x = q and repeat

在下面的脚本中,所有操作都很好:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
section .bss
        integer resb 100        ; it will hold the EOL
        intAddress resb 8       ; the offset

section .text

        global _start:

_start:

        mov rax, 567
        call _printProc

        mov rax, 60
        mov rdi, 0
        syscall


_printProc: ; here goes the algorithm described above.

编译后,数字567将被打印在屏幕(控制台)上。

但是,如果我尝试这样做,但允许用户输入要打印为整数的数字,我就不会得到预期的结果。为了做到这一点,我做了以下更改(算法保持不变):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
section .bss
        integer resb 100        ; it will hold the EOL
        intAddress resb 8       ; the offset
        number resb 100

section .text

        global _start:

_start:

        ; getting user input
        mov rax, 0
        mov rdi, 0
        mov rsi, number
        mov rdx, 100
        syscall

        mov rax, [number]       ; passing the content at address number into rax
        call _printProc

        mov rax, 60
        mov rdi, 0
        syscall


_printProc: ; here goes the algorithm described above.

但是在这种情况下,如果我输入567,就会得到171390517。事实上,如果我输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0, I get 2608
1, I get 2609
2, I get 2610

诸若此类。

如果你们中的一些人知道第二种情况下的问题是什么,以及如何解决这些问题,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-08 23:34:56

当你把这叫做

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    ; getting user input
    mov rax, 0
    mov rdi, 0
    mov rsi, number
    mov rdx, 100
    syscall

是,您的条目(例如"1004")被写入内存中的“数字”,每个字符的字符。现在,您要解决的问题正好相反:“如何将ASCII字符串转换为二进制值”。

这个新问题的算法可以如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(assuming char_ptr points to the string)
result = 0;
while ( *char_ptr is a digit )
    result *= 10;
    result += *char_ptr - '0' ;
    char_ptr++;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43858176

复制
相关文章
如何在Flutter应用程序中创建不同的渐变[Flutter专题20]
Flutter 可用于创建漂亮的 UI。因此,在今天的文章中,我们将看到如何在应用程序中创建不同的渐变 。
徐建国
2021/12/22
4.7K0
如何在Flutter应用程序中创建不同的渐变[Flutter专题20]
从外部设置传入Go变量
前提:必须在build/run时指定 -ldflags="-X main.a=2.0 -X main.b=1" , 且a,b必须是string的变量,不能是常量, 不能是struct.
sunsky
2020/08/19
1.3K0
如何在Nuxt应用程序中加载外部脚本
我需要加载一个样式表和几个脚本。我将分享我如何使用Nuxt完成此操作以及实现此操作的不同方法。
前端知否
2020/03/23
5K1
pandas dataframe apply 传入外部参数 args
# !/usr/bin/python3 import pandas as pd # 如果x小于threshold就等于1,否则等于0 def juege_threshold(x,threshold): return 1 if x<=threshold else 0 data_dict={"values":[1,3,5,7,9,11,13,15,17,19]} data_df=pd.DataFrame(data_dict) print(data_df) data_df["values_7"]=
机器学习和大数据挖掘
2022/05/13
2.3K0
pandas dataframe apply 传入外部参数 args
容器服务:来自外部的你好!
本文探讨了容器服务如何改变应用程序的部署和管理方式,以及它们与其他交付平台的优势和劣势。作者通过分析容器服务、应用程序框架和容器标准,阐述了容器服务带来的好处,并建议尽可能使用容器服务来减少维护和升级所需的应用程序代码。
Techeek
2018/01/05
8740
容器服务:来自外部的你好!
容器服务:来自外部的问好!
容器服务正在改变应用程序的部署方式和管理方式。但容器服务究竟是什么?它与其他传送平台方式有何不同?
O小鸥
2018/01/10
1.5K0
Flutter 应用程序中显示应用程序通知
要使用 Overlay 功能,我们必须将 Material 应用程序包装在OverlaySupport小部件中。
徐建国
2021/11/30
1.8K0
Flutter 应用程序中显示应用程序通知
​Flutter中异常处理
Dart是单进程机制,所以在这个进程中出现问题时仅仅会影响当前进程,在事件循环中,当某个任务发生异常并没有被捕获时,程序并不会退出,而直接导致的结果是当前任务的后续代码就不会被执行了,也就是说一个任务中的异常是不会影响其它任务执行的。
flyou
2020/07/07
2.7K0
​Flutter中异常处理
如何在yii的controller中调用外部action
在yii中,一个controller会包含若干个action。有时为了重用或代码管理等目的,我们希望这些action可以单独定义成一个类,然后在 controller中使用。那么在yii中要如何实现呢?
跑马溜溜的球
2020/12/07
1.7K0
Python笔记:外部参数传入考察(一)argparse库
在编程中,我们往往会遇到需要通过外部参数来控制脚本运行模式的情况,在通用的框架类代码中,这种情况尤为明显,因此,这里,我们来考察一下如何将参数传入到脚本文件中,而不是作为固定参数写死在脚本当中。
codename_cys
2021/03/25
4.4K0
Flutter中的打电话、发短信、调起外部浏览器、打开外部APP
我们通过url_launcher来实现调起电话、短信、外部浏览器、外部APP的功能。
拉维
2019/09/16
5.5K1
Flutter 中的Error的捕获及处理
所有 Flutter 的错误均会被回调方法 FlutterError.onError 捕获。默认情况下,会调用 FlutterError.dumpErrorToConsole 方法,正如方法名表示的那样,将错误转储到当前的设备日志中。当从 IDE 运行应用时,检查器重写了该方法,错误也被发送到 IDE 的控制台,可以在控制台中检查出错的对象。
BennuCTech
2021/12/10
2.6K0
Flutter 中的Error的捕获及处理
java调用外部应用程序
最近因为需要做视频文件转换,在网上找了下,比较多的推荐是使用ffmpeg来实现,于是准备在java语言的基础上去实现,经过分析其实就是调用ffmpeg提供的应用命令去完成。
sucl
2019/08/07
3.6K1
java调用外部应用程序
在Flutter中制作指纹认证应用程序
现在许多手机都配备了指纹传感器,这使得用户登录和本地身份验证更容易,而且比使用密码更安全。
徐建国
2021/07/31
2.6K0
如何在 Flutter 中设置背景图像【Flutter专题16】
在 Flutter 应用程序中设置背景图像的常用方法是使用DecorationImage. 以下示例包括如何设置Fit 模式、透明度以及在显示键盘时防止图像变化。
徐建国
2021/12/13
12.1K0
如何在 Flutter 中设置背景图像【Flutter专题16】
flutter - 如何在 dart/flutter 中收听流值
如果流不是广播流,则您只能收听一次。 请参阅此 Medium post 以了解有关 Streams 的更多信息。 收听 stream 时,您需要在 _assetsAudioPlayer.currentPosition 函数中添加您的代码。
徐建国
2021/08/30
1.1K0
如何在 Flutter 中创建自定义图标【Flutter专题22】
Flutter 提供了很多开箱即用的图标,使用这些图标非常容易。但是,您也可以使用自己的图标。您需要的是一个 TTF(True Type Font)文件,其中包含您要使用的图标。生成 TTF 文件的最简单方法是使用 Fluttericon.com。
徐建国
2022/03/30
3.4K0
如何在vue组件中引入外部的css和js文件[通俗易懂]
在使用vue框架开发时,我们都知道一个组件中可以同时写HTML、css、js代码,只需三个标签而已,如下:
全栈程序员站长
2022/11/09
8.8K0
如何在 Flutter 中禁用默认的 Widget 飞溅效果
默认情况下,许多 Flutter Material Design 小部件在被选中时会显示飞溅效果。
徐建国
2021/08/09
2.4K0
点击加载更多

相似问题

如何在Flutter中启动外部应用(如Skype)

117

为什么Flutter没有处理来自Youtube的这一意图?

10

如何在flutter中处理来自API的RichText?

215

星火处理如何处理来自集群外部的数据,如azure存储?

11

处理来自asyncmap的传入结果

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文