Выраженное в виде десятичного числа (с использованием dc
для преобразования ), это соответствует 999999,98 (с округлением в меньшую сторону )× 256, т.е. 255999994,88, что равно F423FFA.E1 в шестнадцатеричном формате..
Таким образом, разница возникает из-за поведения округления dc
:вместо вычисления 256 × (999999 + 253 ÷ 256 ), что дало бы 255999997, оно округляет 253 ÷ 256 в меньшую сторону и умножает результат.
dc
— калькулятор произвольной точности,что означает, что он может вычислять с любой точностью, которую вы хотите, но вы должны сказать, что это такое. По умолчанию его точность равна 0, что означает, что при делении получаются только целые числа, а при умножении используется количество цифр во входных данных. Чтобы установить точность, используйтеk
(и помните, что точность всегда выражается в десятичных цифрах, независимо от системы счисления ввода или вывода ):
10 k
16 d i o
F423FFD 100 / p
F423F.FD0000000
100 * p
F423FFD.000000000
(Точности в 8 цифр было бы достаточно, поскольку это то, что вам нужно для представления 1 ÷ 256 в десятичном виде.)
Мне удалось ее решить.
По сути, проблема заключалась в сети по умолчанию --, ее нельзя было использовать или ее нужно было изменить. Я только что создал еще одну сеть (в/etc/libvirt/qemu/networks/host-bridge.xml
)со следующим содержимым:
<network>
<name>host-bridge</name>
<forward mode="bridge"/>
<bridge name="virbr0"/>
</network>
Затем в виртуальных машинах я меняю сеть, которую они используют, на эту только что созданную.
Также мост virbr0
был создан с использованием файла /etc/network/interfaces
:
auto virbr0
iface virbr0 inet static
bridge_bridgeprio 20
address 192.168.122.1
netmask 255.255.255.0
bridge_ports none
bridge_stp on
bridge_waitport 5
dns-nameservers 127.0.0.1
dns-search libvirt
Похоже, он работает хорошо, но мне нужно немного поиграть с ним, чтобы увидеть, действительно ли он работает так, как я хотел.