小编Tho*_*s O的帖子

使用位移除以10?

是否有可能通过使用纯位加法,减法除以10的无符号整数,也许繁衍?使用资源非常有限且速度慢的处理器.

math bit low-level integer-division micro-optimization

41
推荐指数
4
解决办法
5万
查看次数

具有嵌套函数作用域的UnboundLocalError

我有这样的代码(简化):

def outer():
    ctr = 0

    def inner():
        ctr += 1

    inner()
Run Code Online (Sandbox Code Playgroud)

但是ctr会导致错误:

Traceback (most recent call last):
  File "foo.py", line 9, in <module>
    outer()
  File "foo.py", line 7, in outer
    inner()
  File "foo.py", line 5, in inner
    ctr += 1
UnboundLocalError: local variable 'ctr' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我认为嵌套的范围可以让我这样做.我试过'全球',但它仍然无效.

python function

34
推荐指数
3
解决办法
6811
查看次数

浮点线性插值

要在两个变量之间进行线性插值ab给出一个分数f,我目前正在使用此代码:

float lerp(float a, float b, float f) 
{
    return (a * (1.0 - f)) + (b * f);
}
Run Code Online (Sandbox Code Playgroud)

我认为这可能是一种更有效的方法.我正在使用没有FPU的微控制器,因此浮点运算是在软件中完成的.它们相当快,但它仍然可以添加或增加100个周期.

有什么建议?

为了清楚起见,在上面的代码中,我们可以省略指定1.0为显式浮点文字.

c embedded algorithm interpolation linear-interpolation

24
推荐指数
4
解决办法
5万
查看次数

struct.error:unpack需要长度为4的字符串参数

Python说我需要4个字节的格式代码为"BH":

struct.error: unpack requires a string argument of length 4
Run Code Online (Sandbox Code Playgroud)

这是代码,我认为需要3个字节:

major, minor = struct.unpack("BH", self.fp.read(3))
Run Code Online (Sandbox Code Playgroud)

"B"无符号字符(1字节)+"H"无符号短(2字节)= 3字节(!?)

struct.calcsize("BH")表示4个字节.

编辑:文件大约800 MB,这是在文件的前几个字节,所以我很确定还有剩余的数据需要读取.

python struct

21
推荐指数
2
解决办法
9万
查看次数

具有32/16位除法的处理器上的64/32位除法

我的处理器是一个没有FPU和整数数学的小型16位微控制器,只有16/16分频和32/16分频,都需要18个周期.目前我正在使用一个非常慢的软件程序(约7,500个周期)进行64/32分割.有没有办法使用这些分区引擎来计算64/32分区?类似于我已经使用16x16乘法器和加法器来计算32x32乘法?我正在使用C但可以使用任何关于如何完成的一般性解释......我希望能够达到<200个周期(如果可能的话).

algorithm optimization division

21
推荐指数
1
解决办法
1万
查看次数

我可以在Delphi/Pascal中一次性分配数组中的项目吗?

我想做一些像PHP,Python和大多数其他编程语言的东西:

my_array_name = [128, 38459, 438, 23674...] 
Run Code Online (Sandbox Code Playgroud)

所以我尽力在Delphi/Pascal中复制它:

HSVtoRGB := [0, 0, 0];
Run Code Online (Sandbox Code Playgroud)

(这是针对给定HSV值返回RGB数组的函数.)

但是我收到了错误:

[DCC Error] Unit2.pas(44): E2001 Ordinal type required
[DCC Error] Unit2.pas(45): E2010 Incompatible types: 'HSVRealArray' and 'Set'
Run Code Online (Sandbox Code Playgroud)

任何的想法?这是学校的工作 - 但我的老师不知道答案.

delphi syntax

17
推荐指数
5
解决办法
2万
查看次数

终止正在运行的子进程调用

我正在用subprocessPython 启动一个程序.

在某些情况下,程序可能会冻结.这是我无法控制的.我从命令行中唯一可以做的就是CtrlEsc快速杀死程序.

有没有办法模仿这个subprocess?我正在使用subprocess.Popen(cmd, shell=True)启动该程序.

python multithreading subprocess

12
推荐指数
2
解决办法
6万
查看次数

Python和跨平台方式列出Linux,Windows和Mac上的磁盘驱动器

我试图列出系统可能具有的磁盘驱动器.

在Windows上,它可能类似于"C:/","D:/","E:/".

在Linux上,它可能类似于"/ boot","/ media/SDCard"等.

我不知道它在Mac上是什么样的.也许/ Volumes下的东西.

有没有人知道Python中的跨平台方式(即在Linux,Windows和Mac上运行的方式)?

谢谢!

哦:快速说明,我正在运行Python 2.6.

python cross-platform file disk

10
推荐指数
2
解决办法
1万
查看次数

地理(地图)数据的理想数据库

我正在寻找有关存储地图的理想数据库或数据结构的建议.从本质上讲,地图由道路,路径等"道路"组成.道路包含节点(具有纬度和经度坐标,有时还有高度).

任何此类数据库或结构:

  1. 应该能够快速定位边界框中的所有节点(毫秒)

  2. 可选地,当大量节点在边界框中而不是少量节点时,或者如果边界框很大时,不应该显着减慢速度

  3. 应该能够找到直接连接的节点:例如,连接两种方式的节点

  4. 可以只读

  5. 应该是紧凑的(避免浪费空间) - 我希望将英国的地图放入不到1 GB的范围内.我有一个卫星导航,在SD卡上有大约800 MB的空间.

我最初想的是四叉树存储方式.但是快速实现很棘手,并且它们不适用于单个节点; 所有节点都可以放在最小的bbox中.

(我故意使用相同的Open Street Map术语,因为我打算使用那些数据.)

sql database mapping geolocation openstreetmap

10
推荐指数
2
解决办法
5721
查看次数

Delphi中网络驱动器上的可用磁盘空间

我正在制作一个A2计算程序,它可以输出大量数据.我在本地网络上的硬盘分配大约是50 MB,因此它是测试"无磁盘空间"错误的好选择.

目前,当程序空间不足时,它会在I/O错误112的情况下崩溃.如果文件可能超出可用空间,我想提前警告.我知道文件有多大(平均每条记录24.8字节),所以我需要做的就是找出多少空间是免费的.

当我在网络驱动器上工作时,如果有文件路径\\qmcsan1\Cxxxxx$\filename.csv,我该如何使用函数DiskFree来计算可用空间?任何这样的功能也需要处理本地驱动器C:/.

任何想法都非常感激.

delphi diskspace

8
推荐指数
1
解决办法
4845
查看次数