in reply to How do I convert from decimal to 2's Complement

#!/usr/bin/perl my $decimal=-33; #How to generate: #$decimal - your Perl variable. MUST be: -127<$decimal<127 my $packed=pack("N",$decimal); # Little-endian 4 byte. my $YOUR8BITVALUE=substr($packed,-1); # last byte from $packed open F,">your_test_file"; print F $YOUR8BITVALUE; close F; # Now you have file with your $decimal # as one byte in "two's complement"; # How to get from file: open F, "<your_test_file"; read(F,$packed,1); #read byte; my $value; # result if (unpack("N","\x00\x00\x00".$packed) & (1<<7)) { # sign bit is set. It's negative value $packed=("\xFF\xFF\xFF").$packed; # expand to int with 3 byte of 0xF +F $value=-(unpack("N",~$packed)+1); # inverse all bits and unpack,incr +ement,reverse sign. } else { $packed=("\x00\x00\x00").$packed; # expand to int $value=unpack("N",$packed); unpack } print "$value\n"; # That's all!