mirror of
				https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
				synced 2025-10-31 02:17:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			832 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			832 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| if [ -z $1 ];
 | |
| then
 | |
|     echo "You must include an integer as an argument.";
 | |
|     exit;
 | |
| fi
 | |
| 
 | |
| if (( $1 > "2147483647" )) || (( $1 < "-2147483647" ));
 | |
| then
 | |
|     echo "Your number ($1) must be between -2147483647 and 2147483647";
 | |
|     exit;
 | |
| fi
 | |
| 
 | |
| if [ $1 -lt 0 ];
 | |
| then
 | |
|     integer=$(echo $((-$1)));
 | |
|     negative=1;
 | |
| else
 | |
|     integer=$1;
 | |
|     negative=0;
 | |
| fi
 | |
| 
 | |
| hex=$(printf '%08x\n' $integer | sed 's/^\(00\)*//');
 | |
| 
 | |
| hexfirst=$(echo $hex | cut -c1)
 | |
| [[ 0x$hexfirst -gt 0x7 ]] && hex="00"$hex
 | |
| 
 | |
| lehex=$(echo $hex | tac -rs .. | echo "$(tr -d '\n')");
 | |
| 
 | |
| if [ "$negative" -eq "1" ];
 | |
| then
 | |
|    lehex=$(printf '%x\n' $((0x$lehex | 0x80)))
 | |
| fi
 | |
| 
 | |
| size=$(echo -n $lehex | wc -c | awk '{print $1/2}');
 | |
| hexcodeprefix=$(printf '%02x\n' $size);
 | |
| 
 | |
| echo "Integer: $1";
 | |
| echo "LE Hex: $lehex";
 | |
| echo "Length: $size bytes";
 | |
| echo "Hexcode: $hexcodeprefix$lehex";
 |