I have negative binary number which has a sign bit and want to write a program to get its gray code. However, I can only find the solution for positive number. So here I am asking this question. Thanks.
how to convert a negative binary number to its gray code
2k views Asked by Albert Zhou At
2
There are 2 answers
0
Alexey Polonsky
On
It is possible to convert a signed integer to Gray code if the target bit width is known:
int gray_encode(int n) {
return n ^ (n >> 1);
}
int gray_encode_signed(int n, int width_bits) {
int all_ones = (1 << width_bits) - 1;
return (n >= 0 ? gray_encode(n) : gray_encode(abs(n)) + all_ones);
}
For example, this is 4 bits Gray code for values from -7 to 7:
decimal 4bit gray code
-7 1011
-6 1100
-5 1110
-4 1101
-3 1001
-2 1010
-1 1000
0 0000
1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
Related Questions in BINARY
- Serializing to disk and deserializing Scala objects using Pickling
- Need Helped Understanding an 8-Bit Signed Decimal with 2's Compliment
- writing into file (Converting Base64 to Binary) values Using VFS and ESB 4.8.1
- Store 3 bit binary numbers in C++ array
- Benefits of storing hex in DB over file
- Binary to CSV record Converstion
- Add binary numbers like decimal numbers in Java. eg 0101 + 0110 = 0211
- Reading a line of binary file MATLAB
- Long.parseLong Error
- Reading binary file in Perl
- Fast Random Permutation of Binary Array
- Type safety and NEG instruction
- Populating data from a binary stream using byte array in java
- 1MiB = 1024KiB = 2^10. Nonetheless, why not use just 1000 byte instead 1024 to calculate size?
- Need help understanding how vectors are represented in binary [C++]
Related Questions in CONVERTERS
- WPF converter column ItemsSource
- USB to Serial, Port Name Changing Unexpectedly
- PHP HTML to DOC
- find a string in text file and create bytes from The rest of the file c#
- VAADIN: Why I can't set a converter to a ComboBox?
- How to count the number of characters in a line in a csv file
- Python 3.4 tkinter real-time temperature converter
- apache cxf - convert WSDL to Java
- custom boolean converter to set style class
- Byte array to struct
- Convert HTML to PDF and preserve letter spacing
- Clean and convert HTML to XML for BaseX
- Convert long int seconds to double precision floating-point value
- af:convertNumber element removes zero in the end of the value
- Extract binary data stream from audio signal
Related Questions in BIT-MANIPULATION
- Understanding ~ Operator
- Getting four bits from the right only in a byte using bit shift operations
- How this bitshift to build the number works?
- A + B without arithmetic operators, Python vs C++
- Faster way of adding negative signed to unsigned
- Setting a bit in hexadecimal number
- reverse a number's bits
- php synatax $b = (6 << 1); clarification
- Turning off a single GPIO pin on ARM9 (LPC3141)
- Toggle a given range of bits of an unsigned int in C
- javascript shifting >32-bit to get 64-bit Int
- Setting bits in a bit stream
- Efficient comparison of small integer vectors
- Perform integer division using multiplication
- Bitwise (Bitshift) operations on 64-bit integers in C++
Related Questions in GRAY-CODE
- Use of __builtin_expected for bounds check
- Efficient way to iterate over Gray code change positions
- What are the benefits of Gray code in evolutionary computation?
- how to convert a negative binary number to its gray code
- How to find if two numbers are consecutive numbers in gray code sequence
- Convert a character array of binary numbers into a counter of Gray Code in C++
- Gray code to binary conversion
- Gray codes addition
- Gray code pattern in tournament chart?
- Python GrayCode saved as string directly to decimal
- k-combination of n items with "Gray code"-like property
- Increasing Efficiency of binary -> gray code for 8086
- Gray code in .NET
- Why gray code is an exclusive or of the bits in a binary code
- Please suggest an algorithm to compare Gray code numbers
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Gray code can only be calculated for non-negative numbers, using the following method:
The same method won't work for negative numbers because of Two's complement representation of binary numbers.