in reply to Converting negative number to binary with specific width
The problem is that the b format is for unsigned integers only, so your -1 gets turned into an unsigned int and printing that overflows your field width, giving you lots of ones.The help for sprintf says :-
%b an unsigned integer, in binary
BTW sprintf always prints the entire number even if it's bigger than the field width, so this is never going to work for 10 bit binary.
In Section
Seekers of Perl Wisdom