V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  stein42  ›  全部回复第 3 页 / 共 4 页
回复总数  66
1  2  3  4  
2022-06-20 19:23:04 +08:00
回复了 bigxianyu 创建的主题 跑步 跑步能坚持久的人有什么身体特征?
跑步能坚持久的人一般不用跑步机。
2022-06-19 23:16:29 +08:00
回复了 woshichuanqilz 创建的主题 程序员 Cpp 移动构造函数的问题
C++ 是把对象和资源关联到一起,移动是移动关联的资源。
这里 Move 对象关联的资源就是 new 分配的内存,析构函数会释放这块内存(如果不为空的话)。
复制构造函数是新分配了一块内存,并把值复制过来。
移动构造函数是转移了资源,这里既 a 分配的内存转移给了 b 。
2022-06-19 22:45:46 +08:00
回复了 woshichuanqilz 创建的主题 程序员 Cpp 移动构造函数的问题
相同的应该是 a.data 和 b.data ,它们的类型是 int*。
而不是 &(a.data) 和 &(b.data),它们的类型是 int**。
2022-06-18 11:28:52 +08:00
回复了 kgdb00 创建的主题 Linux gcc 为什么连这种代码都能编译通过?
a[b] 等价于 *(a + b)。
C 语言标准就是这样规定的。
https://en.cppreference.com/w/c/language/operator_member_access
2022-06-15 18:54:57 +08:00
回复了 maleclub 创建的主题 分享发现 求一良药
@maleclub 那就不知道了,我用了家里基本就没有了。
2022-06-15 18:50:02 +08:00
回复了 maleclub 创建的主题 分享发现 求一良药
拜耳蟑螂药,可以杀死小强全家。
2022-06-13 16:56:59 +08:00
回复了 louisxxx 创建的主题 问与答 brew 为什么每次安装安装都自动更新其他已存在软件
可以考虑换到 nix ,完美解决多版本共存。
https://nixos.org/download.html#nix-install-macos
2022-06-06 02:14:45 +08:00
回复了 Chaconne 创建的主题 Python python3 运行程序出错的问题
另外对于系统默认的 python ,用系统的包管理器例如 apt 来安装模块,不要用 pip ,否则可能会破坏系统。
2022-06-06 02:02:13 +08:00
回复了 Chaconne 创建的主题 Python python3 运行程序出错的问题
先阅读一下 README.md ,里面会有说明。
可以建一个 python 的虚拟环境,安装 requirements.txt 里的所有包,再用虚拟环境的 python 运行 start.py
或者根据 Dockerfile 构建 Docker 镜像运行。
2022-06-03 09:38:00 +08:00
回复了 shawnsh 创建的主题 上海 提醒租房的沪飘,你们的房屋中介可能跑路了
中介应该有给房主押金,在你搬出去之前押金应该不会退给中介。
如果没收押金或已经提前退回去了,那损失是房主承担。
所以要么让房主退押金给你,要么住够时间再搬。
如果只是内核问题的话,换 LTS 内核应该可以解决,旧硬件没必要用最新内核。
`pacman -S linux-lts`
两个内核可以同时安装,启动时选择就可以了。

换 kubuntu 也是可以的。
非 LTS 内核稳定性要差些,可以试试安装 linux-lts 。
2022-05-29 21:40:56 +08:00
回复了 yurong333333 创建的主题 问与答 询问: IDEA markdowm 浏览的切换快捷键
这里面有
preference - keymap - plugin - markdown
2022-05-25 00:44:11 +08:00
回复了 codists 创建的主题 Python Python array 文档里面的 machine values 具体指的是什么?
value (值)是指整数值(1, 2, 3 ...),实数值(0.1, 1.0, 10.0, ...)、布尔值(true, false)等。
值都有对应的类型,类型可以看做值的集合。

machine value (机器值)是指机器(计算机 CPU)能够直接处理的值。

machine value 可以简单的用几个字节表示,例如:
无符号整数(8 位,16 位,32 位,64 位等),采用原码表示。32 位无符号整数取值范围为 0 到 2**32-1 。
有符号整数(8 位,16 位,32 位,64 位等),采用补码表示。32 位有符号整数取值范围为 -2**31 到 2**31-1 。
浮点数(32 位,64 位等),按 IEEE 754 标准规定的方法表示。32 位浮点数取值范围大约为 -3.4028235e+38 到 3.4028235e+38 ,以及 3 个特殊值。

machine value 的基本运算(加减乘除等)通常就是一条机器指令,这些运算与数学上的运算有些差异,有溢出、误差等情况。

详细可以参考 CSAPP 的第二章。

与 machine value 对应的就是高级语言里的值。
例如 python 里面的 int ,可以表示很大的整数(取决于内存大小)。
每个 int 占用的内存不固定,绝对值越大占用内存越多。
对应的运算也是一个复杂的函数,最终需要很多条机器指令。

----------------

《 Fluent Python 》里的 "just like an array in the C language" 这一句是指:
python 的 array 和 c 里面的 array 是一样的,都是用一块连续的内存来存储多个 machine value 。
例如长度为 10 的 32 位有符号整数数组,就是用连续的 40 个字节来存储,每 4 个字节(32 位)表示 1 个整数。

----------------

python 文档里 "interpreting the string as an array of machine values" 是指:
把 bytes (若干字节)看作 machine value 的数组,类型取决于调用 frombytes 的 array 对象。

----------------

"machine values" 和 "二进制补码" 不一样,一个是值,一个是值的表示方法,并且只有 "有符号整数" 用 "补码" 表示。

----------------

至于中译本就不评价了。
2022-05-23 16:31:14 +08:00
回复了 codists 创建的主题 Python Python array 文档里面的 machine values 具体指的是什么?
# 这里的 string 是指字节串(bytes)而不是字符串(str)。
# machine values 就是值(例如 int 、float 等)的机器表示(内存表示)。
# 内存里面每个位有 0 和 1 两种状态,通常每 8 位组成 1 个字节,每个字节取值 0~255 。
# 同一块内存可以按不同的方式来解释。
# tobytes 和 frombytes 功能相反。

import array

# 现代 CPU 都是用补码表示有符号整数
# 大端序和小端序 CPU 结果不同
# int 通常为 32 位,每个 int 对应 4 个字节
a = array.array('i', [-1, 0, 1, 10])
b = a.tobytes()
print(b)
print(list(b))

# 相同的内存可以按不同的类型来解释,结果不同。
c = array.array('i')
c.frombytes(b)
print(c)

d = array.array('I')
d.frombytes(b)
print(d)

# 浮点数按 IEEE 754 标准来表示
# float 为 32 位,每个 float 对应 4 个字节
e = array.array('f', [-1.0, -0.0, 0.0, 1.0, 10.0])
f = e.tobytes()
print(f)
print(list(f))
2022-05-23 12:10:28 +08:00
回复了 codists 创建的主题 Python Python array 文档里面的 machine values 具体指的是什么?
list 里面存的是指针,指针可以指向任意类型的对象,缺点是每个对象需要单独分配内存。

array 直接在一块连续的内存存对应的值,所有的值只能是同一类型。

建议学一下 C 语言,了解 int 、float 这些类型怎么在内存里表示的。(参考 CSAPP)

一个 bytes (byte string) 就是一片连续的内存,array.frombytes 就是根据 array 的类型来解释这一片内存。
2022-05-15 07:52:04 +08:00
回复了 as9567585 创建的主题 macOS 求一个命令可以切换修饰键,就是 cmd / option 修改
Karabiner-Elements ,创建两个方案。
2022-05-12 16:55:49 +08:00
回复了 FanyFull 创建的主题 问与答 C 语言关于 %d 的一个问题
在 x86_64 下,整数和指针参数通过通用寄存器传递,浮点数通过浮点数寄存器传递。
这里调用时往浮点数寄存器写入了参数,但函数里面却去通用寄存器里读取,所以结果是随机的。

在 x86 下,参数都通过栈传递,结果应该是 double 截断的结果。
2022-05-09 21:46:58 +08:00
回复了 ottawa8821 创建的主题 Linux 求助,关于 Linux 类系统的分区问题(Low disk space 问题)
Archlinux 使用 pacman 管理软件包,每个软件包有一系列文件,分布在不同的目录。
`pacman -Ql <package-name>` 可以查看每个软件包有哪些文件。
一般情况下不能更改这些文件所在的目录。

目录和分区的对应关系是任意的,通过 `/etc/fstab` 指定。
首先必须有一个分区挂载在根目录 /。
然后可以为一个目录指定单独的分区,例如:
如果有一个分区挂载在 /home ,那么 /home 目录下的所有文件都在这个分区。
如果没有单独的分区挂载在 /home ,那么 /home 目录下的所有文件就在根目录所在的分区。

根目录建议 100G 以上,/boot 建议 1G 以上,剩下的给 /home 。

如果有用 LVM ,可以方便的调整虚拟卷的大小。
如果文件系统是 ZFS 或 btrfs ,虚拟卷的空间是共享的。
如果是 GPT 分区表和 ext4 文件系统的话,也是可以调整的,比较麻烦。
2022-05-05 22:23:18 +08:00
回复了 fyourm 创建的主题 Python Python 循环问题,求助
请讲下你用的什么硬件和软件。
定义 4 个变量用时 4 秒,感觉这里不适合用 python 。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5558 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 03:10 · PVG 11:10 · LAX 19:10 · JFK 22:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.