Visit Our UNIX and Linux User Community

Negative decimal to binary

Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Negative decimal to binary
# 1  
Old 11-23-2019
Negative decimal to binary

Is there a fast way to convert a negative decimal value into a signed binary number in bash script ? I've looked a lot on internet but I saw nothing... (For exemple : -1 become 11111111.)
# 2  
Old 11-23-2019
You could use XOR but here is a solution that is fully POSIX complaint:
# <integer_-128_to_127>
# USAGE: [/full/path/to/][./] <integer_from_-128_to 127>


# Account for -127 to -1.
if [ ${NUMBER} -ge -127 ] && [ ${NUMBER} -le -1 ]
    NUMBER=$(( NUMBER + 256 ))

# Account for -128.
if [ ${NUMBER} -eq -128 ]
    echo "${STRING}"

# Now do calculations for positive values only.
for COUNT in 6 5 4 3 2 1 0
    M=$(( NUMBER / 2 ))
    N=$(( NUMBER % 2 ))
    STRING=$( printf "%d" "${N}" )${STRING}

# Print it, no need to reverse the string...
echo "${PREFIX}${STRING}"

Results, OSX 10.14.6, default bash terminal calling dash, POSIX compliant.
Last login: Sat Nov 23 22:28:58 on ttys000
AMIGA:amiga~> cd Desktop/Code/Shell
AMIGA:amiga~/Desktop/Code/Shell> ./ 0
AMIGA:amiga~/Desktop/Code/Shell> ./ -128
AMIGA:amiga~/Desktop/Code/Shell> ./ -127
AMIGA:amiga~/Desktop/Code/Shell> ./ -1
AMIGA:amiga~/Desktop/Code/Shell> ./ 1
AMIGA:amiga~/Desktop/Code/Shell> ./ 126
AMIGA:amiga~/Desktop/Code/Shell> ./ 127
AMIGA:amiga~/Desktop/Code/Shell> _

# 3  
Old 11-23-2019
echo ${D2B[-127]}

Last edited by nezabudka; 11-23-2019 at 10:19 PM..
This User Gave Thanks to nezabudka For This Post:
# 4  
Old 11-23-2019
D2B=($(eval echo $(printf %.s\{0,1} {0..15})))

Last edited by nezabudka; 11-23-2019 at 11:37 PM..
# 5  
Old 11-24-2019
Originally Posted by nezabudka
D2B=($(eval echo $(printf %.s\{0,1} {0..15})))

Please check this (above) for accuracy... thanks.
This User Gave Thanks to Neo For This Post:
# 6  
Old 11-24-2019
What keeps you from using / trying the proposals in your other thread to the same topic, e.g. this one ?
# 7  
Old 11-24-2019
Originally Posted by nezabudka
echo ${D2B[-127]}

Nice and I thanked the post but...
Be aware, this only works in ksh93 and zsh on Apple gear.
'bash 3.2.x which is all we have with Apple, and POSIX' is a non-starter.
These 2 Users Gave Thanks to wisecracker For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #577
Difficulty: Medium
If a language offers automated memory management, it is not possible to have memory leaks and other memory allocation issues.
True or False?

10 More Discussions You Might Find Interesting

1. Programming

Urgent help needed.. C++ program to convert decimal to hexa decimal

Hi , seq can be 0...128 int windex = seq / 8; int bindex = seq % 8; unsigned char bitvalue = '\x01' << (7-bindex) ; bpv.bitmapvalue = bitvalue; This is the part of a program to convert decimal to bitmap value of hexadecimal. I want this to change to convert only to... (1 Reply)
Discussion started by: greenworld123
1 Replies

2. Programming

Binary to decimal for particular bits

Hello, I have script which work fine on particular data.file . The next feature I want to achieve is to get the decimal equivalent of data to data. The data looks like this : data(01000000000000000000110000000000) thank you.. #include <iostream> #include <fstream> #include... (4 Replies)
Discussion started by: emily
4 Replies

3. Shell Programming and Scripting

How to get the negate of decimal to binary?

Hi All, New to this forum (and yes , a newbie in programming..:p) I have a decimal to binary converter script done this way : i=$1 bit0=$(( (i & 0x01) > 0 )) bit1=$(( (i & 0x02) > 0 )) bit2=$(( (i & 0x04) > 0 )) bit3=$(( (i & 0x08) > 0 )) bit4=$((... (6 Replies)
Discussion started by: digiteltlc
6 Replies

4. Shell Programming and Scripting

Converting string to negative decimal value

I need code for converting a string to a negative decimal value. For ex, i have the value in the form of a string (5489.95-) i need to convert it into decimal value (-5489.95) while getting output using printf command. i know how to get as a string a="5489.95-" printf "%10s"$a >>xyz.dat ... (5 Replies)
Discussion started by: angie1234
5 Replies

5. Shell Programming and Scripting

error- multiplying negative decimal values

a=10.02 pattern=-11.01 b=$(echo | awk '{ print $a*$pattern}') echo $b its not working even ALso tried `expr $a \* $pattern` No LUCK (3 Replies)
Discussion started by: saluja.deepak
3 Replies

6. Homework & Coursework Questions

Decimal to BCD (Binary Coded Decimal)

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Design an algorithm that accepts an input a decimal number and converts it into BCD (Binary... (2 Replies)
Discussion started by: caramba
2 Replies

7. UNIX for Dummies Questions & Answers

Decimal to BCD (Binary Coded Decimal)

Anybody please help me... Design an algorithm that accepts an input a decimal number and converts it into BCD (Binary Coded Decimal) representation. Also, draw its Flow Chart. This is a unix qn... plz post algorithm for that :confused: (1 Reply)
Discussion started by: caramba
1 Replies

8. UNIX for Advanced & Expert Users

Converting Binary decimal coded values to Ascii Values

Hi All, Is there any command which can convert binary decimal coded values to ascii values... i have bcd values like below оооооооооооо0о-- -v - Pls suggest a way to convert this. Thanks, Deepti.Gaur (3 Replies)
Discussion started by: gaur.deepti
3 Replies

9. Programming

decimal to binary function error

I have the following simple code to return a binary number in a array format given an interger and the number of the bits for specifying the interger as binary number. #include <stdio.h> #include <stdlib.h> int main () { // int* get_binary_number(int* bit_array, int num, int... (8 Replies)
Discussion started by: return_user
8 Replies

10. Shell Programming and Scripting

unix script for converting a decimal to binary

Could anybody please help me in writing a script in unix for converting a decimal number to binary number. (3 Replies)
Discussion started by: softy
3 Replies

Featured Tech Videos