首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印出的数字是否包括将数字转换成字符?

问打印出的数字是否包括将数字转换成字符?
EN

Software Engineering用户
提问于 2011-07-22 20:30:47
回答 3查看 212关注 0票数 1

在编程语言中,当数字(整数或实数字)被打印出来时,它们是否首先转换为表示数字的可读字符的代码,然后将代码解码为可读的字符?

例如,在C中,像printf这样的函数可以打印出一个整数变量a的值以供屏幕或文件。假设a的值为1。printf是否首先将数字1转换为数字0x31,这是字符1的ASCII代码,然后在输出中将0x31解码为字符1?

谢谢和问候!

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2011-07-22 20:37:35

printf()使用"%d“打印规范执行您所说的前半部分。变量中的数字通常为1-补码二进制(尽管存在其他约定并已使用),而printf()中的代码确实将数字1转换为ASCII代码,通常以8位为单位。

它取决于输出设备,xterm,打印机,哑终端,什么-你,采取字节,并将他们变成某种光学可读的人。xterm将字节值0x31 (如果是在ASCII或UTF-8模式中)转换为某些位图,这取决于打印的字体和大小。传统的冰河期电传打字机会用“1”键机械地敲打纸张。

票数 7
EN

Software Engineering用户

发布于 2011-07-22 20:38:30

一般是的。控制台的输出通常使用ASCII字符完成。BIOS/OS中的呈现引擎(取决于呈现的是哪些)侵入ASCII字符并设置要显示的适当像素。

从技术上讲,计算机只知道1's和0's。编译器编写代码将ascii值0x31转换为位。然后,呈现引擎获取该信息,并确定向显示发送哪些命令。显示器就是这样,用它来确定要亮哪些像素,以及如何点亮。在屏幕上显示字符的代码数量惊人。

票数 1
EN

Software Engineering用户

发布于 2011-07-22 21:43:50

是。一直到0x31。C是否涉及将字节值0x31转换为表意符号,在屏幕上显示为像素?不是的。这个部分是在硬件中实现的,或者程序员可以假设它是硬件(在大多数现代情况下是系统软件)。

如果您想知道软件到底在哪里结束,那么它就是系统内存的区域,包含字符字节码,在物理上可以不是普通的RAM,而是视频硬件中的RAM或类似RAM的可寻址资源。(这是非常老的实现,在现在的全操作系统机器上,它是内存映射和软件/固件的5个方向。)

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/95280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档