首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当gcc操作一个文本文件时,它是否只是看到了ASCII符号的一系列机器代码表示?

当gcc操作一个文本文件时,它是否只是看到了ASCII符号的一系列机器代码表示?
EN

Stack Overflow用户
提问于 2020-06-19 21:33:20
回答 1查看 101关注 0票数 1

由于预期会被更有经验和受过教育的人割裂,我只想为我下面的问题被任何“手波式”或不准确的措辞所困扰而道歉。

我对文本文件、扫描器、解析器(以及总体上的编译器)和C语言有一点了解,所以希望这足以让我的查询内容得到理解。

当我在我的Windows 10计算机上使用gcc编译用C编写的文本文件时,编译器最初在其早期阶段看到了什么?

例如,假设我有一个只包含C语言关键字for的文本文件。这个文件里没有别的东西了。当我提示gcc对该文件执行操作时,编译器是否只看到f (01100110作为其8位表示形式)、o (01101111)和r (01110010)的二进制代码表示?我猜想可能还有其他二进制代码告诉编译器“这是一个文本文件”。

那么编译器所执行的机器级代码是否类似于这样呢?

{二进制代码在文件开头告诉编译器这是文本}_01100110_01101111_01110010_{文件末尾的二进制代码告诉编译器这是文件的结尾}

其中01100110_01101111_01110010是for的机器级表示。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 21:58:39

用输入

用于的

在文本文件中,

编译器将首先看到您调用它来处理该文件的事实。

由此推断它必须是一个带有c代码的文本文件。否则你为什么要让它处理那个文件。因此,在文件内容中没有“{二进制代码在文件开头告诉编译器这是文本}”。

是的,它是for

它使用操作系统的服务/函数(在某些时候还提供了最后一个字符/字节已被读取的信息)这样做。但是,该信息并不包含在文件内容本身中。所述信息最终来自文件系统(通过操作系统访问)在文件上的元数据,例如其长度(与其他数据一起,例如媒体上的确切位置)。

因此,文件内容中没有“文件末尾的{二进制代码”来告诉编译器这是文件}的结尾。

唯一接近“{二进制}”信息的是换行符\n或对返回和换行符\r\n,这取决于环境。它们表示两行之间的边框(可视为换行符的开始或前一行的结尾)。

为了关注你的问题,我跳过了一些细节,比如前处理器的参与。

严格地说,当编译器(或程序中执行编译工作的部分)工作时,预处理程序(或程序中完成预处理工作的部分)已经完成。

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

https://stackoverflow.com/questions/62482052

复制
相关文章
java实现十进制转十六进制_十进制转十六进制java代码
问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
全栈程序员站长
2022/11/15
1.4K0
Android hex十六进制转String
百度的都不好用,最后在stackoverflow上找到了。。。 https://stackoverflow.com/questions/12039341/hex-to-string-in-java-performance-is-too-slow
治电小白菜
2020/08/25
2.7K0
Android hex十六进制转String
js颜色RGB转十六进制
颜色RGB转十六进制 <script> function colorRGBtoHex(color) { var rgb = color.split(','); var r = parseInt(rgb[0].split('(')[1]); var g = parseInt(rgb[1]); var b = parseInt(rgb[2].split(')')[0]);
江一铭
2022/06/16
3K0
【蓝桥杯备赛系列 | 简单题】十六进制转八进制、十六进制转十进制、十进制转十六进制 (手撕)
摘要: 本文旨在准备明年2023的蓝桥杯竞赛,培养个人Java语法素养和手感。 希望可以帮助到一起备赛的小伙伴们。题目来自蓝桥杯刷题网
计算机魔术师
2023/04/07
2.6K0
【蓝桥杯备赛系列 | 简单题】十六进制转八进制、十六进制转十进制、十进制转十六进制 (手撕)
LeetCode 405. 数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。 对于负整数,我们通常使用 补码运算 方法。
Michael阿明
2020/07/13
5840
基础练习 十进制转十六进制
  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示成十六进制的形式。
刘开心_1266679
2019/02/14
1.2K0
IOS中十六进制的颜色转换为UIColor
#pragma mark - 颜色转换 IOS中十六进制的颜色转换为UIColor + (UIColor *) colorWithHexString: (NSString *)color { NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String shou
用户8983410
2021/10/29
5560
c++ 十六进制字符转换十进制_将二进制、八进制、十六进制转换为十进制
9节课征服「字符编码」-1-字符、字符集、字符编号与字符编码(基础课)-周华健的在线视频教程​edu.csdn.net
用户7886150
2021/02/05
1.8K0
基础练习 十六进制转八进制
  输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
刘开心_1266679
2019/02/14
1.5K0
基础练习十六进制转八进制
本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。 #include<iostream> #include <stdio.h> #include<string> using namespace std; int main(){ int n,i,num; cin>>n; while(n--){ num=0; string str1,str2=""; cin>>str1; for(i=0;i<str1.length();i++){ switch(str1[i])
Yuyy
2022/06/28
4460
基础练习 十六进制转十进制
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
刘开心_1266679
2019/02/14
1.2K0
十进制转十六进制(Java版)
基础练习 十进制转十六进制 问题描述   十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示成十六进制的形式。 输入格式   输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647 输出格式   输出这个整数的16进制表示 样例输入 30 样例输出 1E
张俊怡
2018/09/19
3.3K0
基础练习 十六进制转八进制
输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
AI那点小事
2020/04/20
6440
基础练习 十六进制转八进制
RGB颜色值转十六进制颜色值
值”#FF9999″是由红绿蓝三原色组成的颜色,#号后的两位表示红,其后的两位为绿,最后的两位为蓝。
全栈程序员站长
2022/07/05
1.4K0
RGB颜色值转十六进制颜色值
十进制转十六进制 C++
编写一个函数,传入一个十进制的正整数,将十进制整数转换为十六进制的字符串并返回。(十六进制字符串中的字母全部大写)
叶茂林
2023/07/30
5440
BASIC-12 十六进制转八进制
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T51 #include <iostream> #include <stdlib.h> #include <st
英雄爱吃土豆片
2021/12/07
3510
蓝桥杯 基础练习 十进制转十六进制
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示成十六进制的形式。
Meng小羽
2019/12/23
7190
​LeetCode刷题实战405:数字转换为十六进制数
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/10/21
5020
十进制转换为二,八,十六进制_vb进制转换
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。
全栈程序员站长
2022/11/07
1.4K0
十进制转换为二,八,十六进制_vb进制转换
蓝桥杯 基础练习 十六进制转八进制
  输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
Meng小羽
2019/12/23
5910

相似问题

Ruby RegEx问题

20

Ruby中的Regex问题

10

Ruby和regex的问题非常奇怪

42

正则表达式'[\w-]+(\.[\w-]+)*‘不匹配

2124

Ruby Regex vs Python Regex

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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