Добавление 0 перед двоичным числом на основе значения в переменной - PullRequest
0 голосов
/ 26 марта 2019

Я пишу код, в котором мне нужно преобразовать некоторые формы «нет» в двоичное «нет» для некоторой обработки.Я хочу, чтобы размер двоичного файла не основывался на значении, хранящемся в переменной, для которого мне нужно добавить несколько ведущих нулей.например, скажем, есть переменная $ size = 15 Теперь я хочу преобразовать двоичное число в десятичное в 15-битное

Я знаю, как вручную задать счет для ex - если мы хотим получить двоичное двоичное число no из некоторого числадесятичное нет, тогда мы будем использовать-

    $data_binary = sprintf( "%08b", $initial_data );

Но как указать размер двоичного файла нет, если размер хранится в некоторой переменной ??

Например =

    If size =10
    decimal no =12
    required binary no = 0000001100

Ответы [ 2 ]

1 голос
/ 26 марта 2019

См. perldoc -f sprintf:

$data_binary = sprintf( "%0*b", $size, $initial_data );

Например,

printf "%0*b\n", 10, 12

печать

0000001100

Если двоичное представление вашего числа содержит более $size битов, оно не будет усечено. В зависимости от вашего варианта использования, вы можете добавить substr после этого (но я буду удивлен, если вам действительно нужно это сделать).

0 голосов
/ 26 марта 2019

Вы можете использовать один sprintf для генерации строки формата для другого sprintf.
[Существует более одного способа сделать это]

use strict; use warnings;
my $binary_length = 10;
my $initial_data = 12;

my $format = sprintf('%%0%db', int($binary_length));
my $data_binary = sprintf( $format, $initial_data );
print $data_binary,"\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...