Sponsored Content
Top Forums Shell Programming and Scripting Conversion from Hexadecimal to binary Post 302892157 by jim mcnamara on Tuesday 11th of March 2014 08:20:17 AM
Old 03-11-2014
This works in the bash shell. It is a one-off hack, IMO. perl or some other interpreted language would be more efficient.
Code:
#!/bin/bash
#obase.shl - convert to binary from hex
while read rec
do
a=( $rec)
 (echo ${a[0]}
  echo "ibase=16; obase=2; ${a[1]}"  | bc -l
  echo "ibase=16; obase=2; ${a[2]}"  | bc -l) | tr -s  '\n' ' '
  echo "ibase=16; obase=2; ${a[3]}"  | bc -l 
done < infile

Code:
$ ./obase.shl
WS-2 100011 1101000101 1000110101
DT-3 1000101 10010100011 0
pp-2 1110110 1100000000 11100100

$

No time left --- I cannot fiddle with the remaining problem : 000 -> output as 000. fix that one yourself.
This User Gave Thanks to jim mcnamara For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

shell script conversion to binary

My question is: i have a script called getevent to run i just call ./getevent can i convert this to make it binary executable and not letting my clients open it and see the code.??:( I am using Solaris 8. (3 Replies)
Discussion started by: bcheaib
3 Replies

2. UNIX for Dummies Questions & Answers

Binary file conversion

All, I want to convert multiple \0 005 characters to line feed 012 character in a binary file to make to readable. Here is the sample od -c file output: 0000000 254 355 \0 005 s r \0 * c o m . c i s c Here is the sample od -b file output: 0000000 254 355 000... (0 Replies)
Discussion started by: bubba112557
0 Replies

3. Shell Programming and Scripting

Decimal to Hexadecimal conversion

Hi frnds :) I need a small help... I have a very long file containing 20 digits decimal number which i want to convert into the corresponding 16 digit hexadecimal values. File looks like.... 11908486672755551741 05446378739602232559 04862605079740156652 . . . I tried the script for i... (7 Replies)
Discussion started by: vanand420
7 Replies

4. Programming

Binary conversion function

Is/are there any function(s) in C that convert(s) character/ASCII/Decimal to binary and vice versa? what about bcopy and strcpy? (1 Reply)
Discussion started by: Peevish
1 Replies

5. Shell Programming and Scripting

binary file conversion

Hello folks, i have a binary text file but i am not able to convert into text format, please suggest. thanks. (2 Replies)
Discussion started by: learnbash
2 Replies

6. Shell Programming and Scripting

binary to ascii conversion

Hi, I have got a library file, created by compiling C code. The file information with "file" command, gives it a "application/x-archive" type file. I want to extract the release string of my software from this file, so that i can know which version of C files were used to create the lib. Can... (3 Replies)
Discussion started by: atulmt
3 Replies

7. Solaris

binary conversion

Why would a binary which was compiled on a Solaris-10 not be runnable in a SunOS 5.10? (they are supposed to be precisely equivalent). When I run the file command on it, it says: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, not stripped, no debugging information available... (10 Replies)
Discussion started by: steve701
10 Replies

8. Shell Programming and Scripting

NAWK conversion of hexadecimal input to decimal output via printf, I am close I can feel it

I have searched and the answers I have found thus far have led me to this point, so I feel I am just about there. I am trying to convert a column of hexadecimal to decimal values so that I can filter out via grep just the data I want. I was able to pull my original 3 character hex value and... (10 Replies)
Discussion started by: PCGameGuy
10 Replies

9. Shell Programming and Scripting

Hexadecimal to Binary conversion

Hi Guys, Is it possible to convert the hexadecimal to Binary by unix command.....I could not figure out.... If I need to convert AF6D to binary...what could be the way to do? Thanks in advance!! ---------- Post updated at 02:57 AM ---------- Previous update was at 02:42 AM ---------- I... (6 Replies)
Discussion started by: Indra2011
6 Replies

10. Programming

Hexadecimal to binary operation

Dear all, I am trying to write c-program to read the following file containing hexadecimal values (snippet of big data file). I want to combine two hexadecimal values together like A0A03E01 and then would like to have the binary equivalent to perform further test on it. Unfortunately, it failed... (16 Replies)
Discussion started by: emily
16 Replies
bc(1)							      General Commands Manual							     bc(1)

NAME
bc - Provides a processor for arbitrary-precision arithmetic language SYNOPSIS
bc [-cl] [file...] The bc command is an interactive program that provides unlimited precision arithmetic. It is a preprocessor for the dc command. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: bc: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
[Tru64 UNIX] Compiles file, but does not invoke dc. Includes a library of mathematical functions. Also sets the number of digits retained after the decimal point (the scale) to 20; by default the scale is 0. OPERANDS
Pathname of a text file containing program statements. After file has been exhausted, standard input is read. DESCRIPTION
[Tru64 UNIX] The bc command invokes dc automatically, unless the -c (compile only) option is specified. If the -c option is specified, the output from bc goes to the standard output. The bc command lets you specify an input and output base in decimal, octal, or hexadecimal (the default is decimal). The command also has a scaling provision for decimal point notation. The syntax for bc is similar to that of the C language. The bc command takes input first from the specified file. When bc reaches the end of the input file, it reads standard input. In the following description of syntax for bc, letter means one of the letters a-z. Comments Comments are enclosed in /* and */. Names Simple variables: letter Array elements: letter[expression] The words ibase, obase, and scale Other Operands Arbitrarily long numbers with optional sign and decimal point. Number of significant decimal digits Number of digits to right of decimal point Operators + - * / % ^ (% is remainder; ^ is power) ++ -- (prefix and suffix; apply to names) == <= >= != <> = =+ =- =* =/ =% ^= += -= *= /= %= Statements expression {statement;...;statement} if (expression) statement while (expression) statement for (expression;expression;expression) statement (null statement) break quit Function Definitions define letter ( letter,...,letter ) { auto letter,...,letter statement;...statement return ( expression ) } Functions in -l Math Library sine cosine exponential log arctangent Bessel function General Syntax All function parameters are passed by value. The value of a statement that is an expression is displayed, unless the main operator is an assignment. A semicolon or newline character separates statements. Assignments to scale control the number of decimal places printed on output and maintained during multiplication, division, and exponentiation. Assignments to ibase or obase set the input and output number radix, respectively. The same letter may refer to an array, a function, and a simple variable simultaneously. All variables are global to the program. Auto- matic variables are pushed down during function calls. When you use arrays as function parameters, or define them as automatic variables, empty brackets must follow the array name. All for statements must have all three expressions. The quit statement is interpreted when read, not when executed. EXIT STATUS
The following exit values are returned: Successful completion. An error occurred. EXAMPLES
When you enter bc expressions directly from the keyboard, press the End-of-File key sequence to end the bc session and return to the shell command line. To use bc as a calculator, proceed as follows: Enter: $ bc 1/4 The system responds as follows: 0 Enter: scale = 1 /* Keep 1 decimal place */ 1/4 The system responds as follows: 0.2 Enter: scale = 3 /* Keep 3 decimal places */ 1/4 The system responds as follows: 0.250 Enter: 16+63/5 The system responds as follows: 28.600 Enter: (16+63)/5 The system responds as follows: 15.800 Enter: 71/6 The system responds as follows: 11.833 Enter: 1/6 The system responds as follows: 0.166 You may type the comments (enclosed in /* */), but they are provided only for your information. The bc command displays the value of each expression when you press <Return>, except for assignments. To convert numbers from one base to another, proceed as follows: Enter: bc obase = 16 /* Display numbers in Hexadecimal */ ibase = 8 /* Input numbers in Octal */ 12 The system responds as follows: A Enter: 123 The system responds as follows: 53 Enter: 123456 The system responds as follows: A72E To write and run C-like programs, proceed as follows: Create the following file prog.bc: /* compute the factorial of n */ define f(n) { auto i, r; r = 1; for (i=2; i<=n; i++) r =* i; return (r); } Enter: bc -l prog.bc This interprets the bc program saved in prog.bc, then reads more bc command statements from standard input (the keyboard). Starting the bc command with the -l option makes the math library available. This example uses the e (exponential) function from the math library, and f is defined in the program prog.bc. Enter: e(2) /* e squared */ The system responds as follows: 7.38905609893065022723 Enter: f(5) /* 5 factorial */ The system responds as follows: 120 Enter: f(10) /* 10 factorial */ The system responds as follows: 3628800 The statement following a for or while statement must begin on the same line. To convert an infix expression to Reverse Polish Notation (RPN), enter: Enter: bc -c (a * b) % (3 + 4 * c) The system responds as follows: lalb* 3 4lc*+%ps. This compiles the bc infix-notation expression into one that the dc command can interpret. The dc command evaluates extended RPN expressions. In the compiled output, the lowercase l before each variable name is the dc subcommand to load the value of the vari- able onto the stack. The p displays the value on top of the stack, and the s. discards the top value by storing it in register . (dot). You can save the RPN expression in a file for dc to evaluate later by redirecting the standard output of this command. ENVIRONMENT VARIABLES
The following environment variables affect the execution of bc: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for- mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. FILES
Mathematical library. Desk calculator proper; uses bc as preprocessor. SEE ALSO
Commands: awk(1), dc(1) Standards: standards(5) bc(1)
All times are GMT -4. The time now is 05:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy