low-level相关内容

如何在 Unicode 中将字符串设置为大写/小写?

这主要是一个我很好奇的理论问题.(我不是想通过自己编写代码或任何东西来做到这一点,我不是在重新发明轮子.) 我的问题是大写/小写等价表如何用于 Unicode. 例如,如果我必须在 ASCII 中执行此操作,我会取一个字符,如果它落在 [a-z] 范围内,我会总结 A 和 a 之间的差异. 如果它不在那个范围内,我会为 10 个左右的重音字符加上 ñ 准备一个小的等价表.(或者, ..
发布时间:2021-08-30 20:41:42 其他开发

哪些编程语言不被认为是高级语言?

在信息学理论中,我一直听到和阅读有关高级和低级语言的信息. 但我不明白为什么这仍然相关,因为除了今天使用的汇编程序之外,没有任何(相关的)低级语言. 所以你得到: 低级 汇编程序 绝对不是低级 C 基础 FORTRAN COBOL ... 高级 C++ 红宝石 Python PHP ... 如果汇编程序是低级的,你怎么能把例如 ..
发布时间:2021-06-21 20:23:28 其他开发

公共、私人和受保护的幕后

我尝试更深入地了解公共 | 之间的差异私人 |在 C++ 中从低级角度保护. 三者的差异在记忆中表现如何? 解决方案 private, public 和 protected 不会导致成员被存储在特定的内存区域.访问由编译器检查.在最底层,没有区别. 但是,访问说明符确实会影响您对类成员在内存中的排列顺序的保证. 来自 C++17 标准草案: 具有相同访问控制(条款[ ..
发布时间:2021-06-11 19:36:55 C/C++开发

自定义堆/内存分配范围

我正在Linux下用C(带有GCC)和NASM编写一个64位应用程序. 有没有一种方法可以指定堆和堆栈的放置位置.具体来说,我希望我所有分配的数据都在任意位置 ,范围为0x00000000-0x7FFFFFFF.这可以通过 C 代码或其他方式在编译时、链接或运行时完成.没关系. 如果这不可能,请解释原因. P.S.对于那些感兴趣的人,我到底在做什么: 我正在处理的程序是用C ..
发布时间:2021-05-31 19:48:38 其他开发

低级别的键盘挂钩问题:当应用程序未聚焦时,键盘状态丢失(Delphi)

已要求我开发一个新应用程序,该应用程序可与现有应用程序一起使用.两个应用程序都将等待条形码读取器的输入.我不希望我们的操作员扫描条形码两次:一次扫描现有的应用程序(16位-剪切器,无源),一次扫描新的应用程序.为了解决此问题,我决定使用低级键盘挂钩(用Delphi编写).看起来很完美,因为2个应用程序将需要条形码读取器输入,并且我的应用程序通常不会被关注. 当我的应用程序集中精力时,我的低级 ..
发布时间:2021-04-30 18:46:04 其他开发

python中的邪恶ctypes hack

我首先要说的是,这个问题纯粹是出于兴趣而提出的,我绝不打算在任何严肃的项目中使用如此难以置信的邪恶.(是的,这是一个问题) 我一直在尝试在CPython的内部工作中汇总一些信息,据我所知,应该有可能操纵小整数的实际值,这样(对于实例)1 + 2的计算结果可能不是3.我几乎没有这种低级黑客方面的专家,而我所能实现的就是段错误.这是到目前为止我得到的: 导入ctypesctypes.c_int ..
发布时间:2021-04-27 20:02:00 Python

为什么在单核/处理器计算机上内存重新排序不是问题?

考虑以下摘自Wikipedia的示例,该示例略有改动,其中程序的步骤对应于各个处理器指令: x = 0;f = 0;线程#1:而(f == 0);打印x;线程2:x = 42;f = 1; 我知道,当线程在两个不同的物理核心/处理器上运行时,由于执行顺序混乱,因此 print 语句可能会打印不同的值(42或0). 但是我不明白为什么这在单核计算机上不是问题,因为这两个线程在同一核上运 ..

为什么Java和C#具有位移运算符?

整数乘积(暂时忘记除法)之间的差值是否仍然有利于移位,如果是这样,该差值有多大? 这似乎只是一个低级的优化,即使您想要它,(C#/Java)在大多数情况下也不应该将字节码编译器或jit捕获吗? 注意:我测试了C#(使用gmcs Mono C#编译器版本2.6.7.0)的编译输出,并且即使乘以2的倍数,乘法示例也不使用shift进行乘法. C# http://csharp.past ..
发布时间:2021-04-15 20:01:40 Java开发

Android低级读取SD卡大于2GB

我的Android应用程序尝试通过访问实际设备(在我的情况下为/dev/block/vold/179:1)读取SD卡的物理扇区.(当然,这是在有根电话的情况下) 我能够以 FileInputStream 的形式打开设备,并从中读取数据.但是,我似乎无法读取超过2GB的标记(我的存储卡为16GB). 这是因为Android不支持大于2GB的文件吗?如果是这种情况,为什么 position ..
发布时间:2021-04-05 20:56:54 移动开发

我可以在主EXE文件中放入LowLevelMouseProc和LowLevelKeyboardProc吗?

全局Windows挂钩必须位于DLL中,因为该挂钩将在其他进程的上下文中被调用,因此必须将挂钩过程的代码注入该进程中.但是,存在限制: SetWindowsHookEx可用于注入 一个DLL进入另一个进程. 32位 DLL无法注入64位 进程,并且不能将64位DLL 注入到32位进程中.如果 应用程序需要使用挂钩 在其他过程中,这是必需的 一个32位应用程序调用 SetWindowsHook ..
发布时间:2020-11-23 20:15:47 其他开发

如何在Windows中打开磁盘并以低级别读取数据?

我知道在Linux中它就像/ dev / sda一样简单,但是在Windows中如何打开磁盘并开始以较低级别读取数据? 在python我试过了: f = open(“ K:”,“ r”) ,我收到此错误: 跟踪(最近一次通话最近): 文件“”,在中的第1行。 IOError:[Errno 13]权限被拒绝:'K:' ..
发布时间:2020-10-22 05:52:53 Python

哪种性能更好:乘法或除法?

哪个版本更快? x * 0.5 或 x / 2 我上过课程前一段时间在大学里叫计算机系统。从那时起,我记得可以用相当“简单”的逻辑门来实现两个值的乘积,但是除法不是“本机”运算,而是需要一个除数在一个循环中的总和寄存器,该除数与除数相加。 p> 现在我必须优化具有很多除法的算法。不幸的是,它不只是被二除,所以二进制移位是不可能的。 update: 我更改了代码,并且没 ..
发布时间:2020-10-10 23:25:34 其他开发

编译器如何编译编译器?

来自高级编程背景,我对学习低级编程感兴趣。我想知道编译器的编译方式吗? 在Wiki中查看了一些文章之后,数字机器代码被认为是最低级别的语言,但是必须有一个编译器才能编译该机器代码。该编译器使用哪种语言? 解决方案 通常,编译器作者采用以下两种方法之一: 用其他现有语言编写整个编译器。通常,这是最简单的选择。 用其他某种语言编写足够的代码,以使用最少的翻译程序,并以“脚手架 ..
发布时间:2020-10-06 21:22:09 其他开发

有没有一种方法可以对C或C ++结构强制执行特定的字节序?

我已经看到了有关结构的字节序的一些问题和答案,但是它们是关于检测系统的字节序或在两个不同字节序之间转换数据。 但是,如果要强制执行给定结构的特定字节序,我现在想要的是。除了用很多在位域上操作的宏重写整个内容之外,还有一些好的编译器指令或其他简单的解决方案吗? 一般的解决方案会很好,但是我会 编辑: 谢谢。您需要提供所有注释,指出为什么执行字节序不是一个好主意,但就我而言,这 ..
发布时间:2020-09-27 02:19:37 C/C++开发

如何制作可启动程序?

所以,这个问题似乎很奇怪,但是让我们说我编译了: int main(void) { int x = 3; int y = 4; int z = x + y; } 是否可以使CPU如此运行?如何?例如,这是否允许我写监视器? (如果我没记错的话,内存中有一些地方可以写一些东西来显示.) 解决方案 对于您的程序,除了启动它之外,它不依赖任何操作系统服务.如果 ..
发布时间:2020-09-22 19:06:19 其他开发

汇编-.data,.code和寄存器...?

因此,今天早上,我发布了一个关于汇编的困惑的问题,并且得到了一些真正的帮助,我非常感谢. 现在我开始组装并开始理解它的工作原理. 我认为我理解的东西包括堆栈,中断,二进制/十六进制,以及一般情况下大多数基本操作(jmp,push,mov等)的作用. 以下是我一直难以理解并希望获得帮助的概念-如果您可以解决以下任一问题,那将是巨大的帮助: .data部分中到底发生了什么?是我 ..
发布时间:2020-09-12 23:14:23 其他开发

在x86上对L1缓存行的独占访问权?

如果有一个64字节的缓冲区被大量读取/写入,则很可能将其保留在L1中;否则,它将保留在L1中.但是有什么方法可以强迫这种行为吗? 在这种情况下,授予一个内核对这64个字节的独占访问权,并告诉它不要与其他内核或内存控制器同步数据,以便使这64个字节始终驻留在一个内核的L1中,而不管CPU是否认为它是经常使用. 解决方案 否,x86不允许您这样做.您可以使用clfushopt强制退出,或 ..
发布时间:2020-09-12 22:45:26 其他开发

脚本与编码

脚本和编码之间有什么区别?我都做过,我都能认出,但是实际上,定义是粗略的.首先,我是否假设您正在“编码",您的“代码"必须(能够)编译到某些系统的机器或程序集中,无论是x86程序集,Windows程序集(如MASM)还是微控制器程序集, 等等. ?我是否还可以假设脚本永远不会编译,它的文本只是通过诸如“基于Microsoft Windows的脚本宿主"(VB-Script解析器)之类的处理程序运行 ..
发布时间:2020-09-12 22:28:26 其他开发

要学习汇编-我应该从32位还是64位开始?

我真的很想学习汇编.我非常擅长c/c ++,但想更好地了解底层的情况. 我意识到以前已经询问过与组装相关的问题,但我只是在寻找适合我的情况的方向: 我正在运行Windows 7,并对如何开始使用汇编感到困惑.因为运行Windows 7,我是否必须以x64开头?有人说“先从32位开始"-我该怎么做?我的操作系统与我为'32'或'64'位编写程序集的能力有关.实际上,"n位"汇编的含义是什 ..
发布时间:2020-09-12 21:55:26 其他开发