必须了解机器架构才能编写代码吗?

2024-01-09

假设我正在用 Java 或 Python 或 C++ 编程解决一个简单的问题,可能是构建 TCP/UDP 回显服务器或阶乘计算。我是否需要关心架构细节,即它是 32 位还是 64 位?

恕我直言,除非我正在编程一些与相当低级的东西有关的东西,否则我不必担心它是 32 位还是 64 位。我哪里错了?还是我说得对???


对于大多数情况都是正确的

运行时/语言/编译器将抽象这些细节,除非您直接处理低级别的字大小或二进制文件。

甚至字节顺序也是由内核中的 NIC/网络堆栈抽象的。已为您翻译。当用 C 语言编写套接字时,有时在发送数据时必须处理网络的字节顺序……但这并不涉及 32 位或 64 位差异。

在处理二进制数据 blob 时,将它们从一种体系结构映射到另一种体系结构(例如作为 C 结构的覆盖)可能会导致其他人提到的问题,但这就是我们开发基于字符等的体系结构独立协议的原因。

事实上,像 Java 这样的东西是在虚拟机中运行的抽象机器又迈出了一步!

知道一点关于架构的指令集,以及语法是如何编译的,可以帮助您了解平台并编写更清晰、更紧凑的代码。我知道在学习编译器之后我会对一些旧的 C 代码做鬼脸!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

必须了解机器架构才能编写代码吗? 的相关文章

  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 为什么 java.util.Arraylist#clear 按照 OpenJDK 中的方式实现?

    http grepcode com file repository grepcode com java root jdk openjdk 6 b14 java util ArrayList java 473 http grepcode co
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 是否可以将 pd.Series 分配给无序 pd.DataFrame 中的列而不映射到索引(即不重新排序值)?

    在 Pandas 中创建或分配新列时 我发现了一些意外的行为 当我对 pd DataFrame 进行过滤或排序 从而混合索引 然后从 pd Series 创建新列时 Pandas 会重新排序该系列以映射到 DataFrame 索引 例如 d
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • Python 通过从现有 csv 文件中过滤选定的行来写入新的 csv 文件

    只是一个问题 我试图将 csv 文件中的选定行写入新的 csv 文件 但出现错误 我试图读取的 test csv 文件是这样的 两列 2013 9 1 2013 10 2 2013 11 3 2013 12 4 2014 1 5 2014
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 使用 jquery 和 css 在图像上显示文本

    我正在使用教程http www webdesignlondon tristar co uk website design london insane jquery image rollover http www webdesignlondo
  • QSplitter 显示两个小部件之间的分隔线或边距

    我有一个 QSplitter 和两侧的两个小部件 但我希望能够有一个边距 以便两个小部件之间有清晰的过渡 我查看了 QSplitter 和 QSplitterHandle 但没有看到任何明确的方法来执行此操作 如何在两个小部件之间添加分隔线
  • 从 Javascript 访问 Chrome 的内部 gzip 例程

    所有现代浏览器都包含用于与服务器交换压缩数据的 gzip 例程 谁能给我指出正确的方向来编写一个允许 Javascript 利用这个例程的 Chrome 扩展 我想在通过 WebSocket 将一些数据发送到服务器之前先用 Javascri
  • 如何设置基于注释的路由翻译?

    我网站的所有路由都是基于注释来实现的 现在 我想翻译我的路由 为了实现这一点 我尝试使用捆绑包JMSI18n路由包 https github com schmittjoh JMSI18nRoutingBundle 然而 文档没有给出任何如何
  • SQLite3 忽略重音符号

    如何在 SQLite3 上使用 LIKE 子句进行 SELECT 忽略重音符号 PS 这是为了Android内置的SQLite支持 有一个解决方案 它并不优雅 但可以在 Android 上运行 REPLACE 函数可以用普通字符替换重音字符
  • 将部分接口类型的对象转换为 TypeScript 中的“完整”接口类型

    假设我有一个界面A看起来像这样 interface A prop1 string prop2 string 我初始化对象obj像这样 const obj Partial a prop1 xyz 有什么办法可以投吗obj to A并自动设置未
  • R studio 列表和数据框自动名称完成不再工作

    突然 R Studio 在输入时停止自动完成我的列表和数据框内容mylist 然后按Tab 我得到的结果消息是 无匹配 我在非常简单的列表或数据框上尝试过 例如 simpledataset lt data frame a rep 0 100
  • 来自 Microsoft 文档的 C# String.Length

    微软文档指出 https msdn microsoft com en us library system string length 28v vs 110 29 aspx该代码将返回 7 个字符 Length 属性返回此实例中 Char 对
  • 如何从 iframe src 获取哈希值?

    当我执行 iframe src 时 我的 iframe 有一个带有哈希值的 url 它只是为我提供了 url 而没有从其他域附加哈希值 我可以读取带有哈希值的整个网址吗 由于安全限制不太可能 我很惊讶你甚至可以获得 URL 你能显示代码吗
  • 动态创建变量

    我曾尝试过学习Python org https www learnpython org en Hello 2C World 21要动态创建变量 可以按如下方式创建 food bread vars food asdasd print brea
  • OAuth 2.0 - 何时应使用刷新令牌更新访问令牌?

    我目前正在使用 OAuth 2 0 访问 Google API 根据我的理解 我应该使用返回的刷新令牌来更新访问令牌 是否应该在过期之前刷新 还是应该在用户使用已过期的访问令牌从 api 请求数据时刷新 如果应该在过期之前完成 我是否应该运
  • 断言在 Python 单元测试中调用了某个方法

    假设我在 Python 单元测试中有以下代码 aw aps Request nv1 aw2 aps Request nv2 aw 有没有一种简单的方法来断言特定方法 在我的例子中aw Clear 在测试的第二行期间被调用 例如有没有这样的事
  • 从大文件中分块数据进行多重处理?

    我正在尝试使用多处理并行化应用程序 该应用程序接受 一个非常大的 csv 文件 64MB 到 500MB 逐行进行一些工作 然后输出一个小的固定大小 文件 目前我做一个list file obj 不幸的是它已完全加载 进入内存 我认为 然后
  • ASP.NET 5 Web 项目和实体框架位于单独的项目中

    从哪里开始 这已经困扰我一整天了 我已更新我的项目以使用新的 ASP NET 5 空预览模板 我已经成功构建了所有项目 但是当我运行我的网站时 出现此错误 当前运行时目标框架不兼容 我的 WEB 命名空间 当前运行时目标框架 DNX 版本
  • 应用程序与 Nexus 7 和 Acer Iconia a210 不兼容

    我知道这个问题已经被问过几次了 但为什么我的应用程序与 Nexus 7 和 Acer Iconia a210 不兼容 我在现有问题中没有找到可行的解决方案 那么我还可能缺少什么
  • 等待直到通过 webClient 从 URL 下载文件

    我很难从 URL 下载几 MB 的 excel 文件然后使用它 我使用VS2010所以我不能使用await关键字 我的代码如下 using WebClient webClient new WebClient setting Windows
  • 动态生成单选按钮

    我有一个 redux 表单 其中包含一些单选按钮
  • ubuntu 上的 codeigniter 问题

    我在 Ubuntu 10 LAMP 上安装了 Codeigniter 我有一个 htaccess 文件
  • 为什么 iPad 上只能嵌入 YouTube?

    我试图找出为什么 YouTube 嵌入在 iPad 上运行良好 而不是任何其他视频网站的嵌入 YouTube 嵌入示例
  • 必须了解机器架构才能编写代码吗?

    假设我正在用 Java 或 Python 或 C 编程解决一个简单的问题 可能是构建 TCP UDP 回显服务器或阶乘计算 我是否需要关心架构细节 即它是 32 位还是 64 位 恕我直言 除非我正在编程一些与相当低级的东西有关的东西 否则