05-15-2007
Bitwise negation
I am taking an online course on Unix scripting. The topic is Unix arithmetic operators and the lesson is Logical and bitwise operations. It is not clear how much storage space Unix uses to represent integers that are typed. Bitwise negation caused me to question how many bits are used to represent numbers.
The course gives an example: ((~ 2#1001)) evaluates to 2#110
This would imply that only 4 bits are used, otherwise I would expect the example to evaluate to 2#11110110 if 8 bits were used an so on.
I do not have access to a Unix OS or this would be easy to check. I don't know if the shell matters, but I would assume BASH since it allows integers.
So, how many bits are use to represent such values? I understand Unix represents everything as strings unless declared as integer such as using typeset -i. Is this the same using something like 2#1111?
Thanks for any help...
9 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
can anybody write a program to divide a number by another number using bitwise operators (9 Replies)
Discussion started by: areef4u
9 Replies
2. Shell Programming and Scripting
Guys,
Pl suggest me how to ignore a path in find command... I am aware of using "!" for other option... but how can i use it like this exampl...
I want to search something for in / but not in
Pl help.
Thanks.. (2 Replies)
Discussion started by: clx
2 Replies
3. Programming
Hi
Suppose we have these code lines:
#define _IN_USE 0x001 /* set when process slot is in use */
#define _EXITING 0x002 /* set when exit is expected */
#define _REFRESHING 0x004
...
1 main () {
2
3 unsigned r_flags =_REFRESHING;
4
5 if (r_flag &... (3 Replies)
Discussion started by: Puntino
3 Replies
4. Shell Programming and Scripting
Hi all,
I've been searching the internet and can't find an answer to this. Im trying to figure out how to negate a whole expression befor an if. I'll explain below.
Let's say
x=0
y=1
] (this is false) I would like to negate this whole boolean condition. To negate the above... (4 Replies)
Discussion started by: rethymno19
4 Replies
5. Homework & Coursework Questions
Hello, have anybody any idea, how to negate some expression?
I have code that greps somethnig and I want filter from it some results...How to make it?
IDontWantThisExpression=$1
grep 'some regex' | grep '$IDontWantThisExpression' testfile.txt
Thanks for any advices.
Faculty of... (2 Replies)
Discussion started by: Dworza
2 Replies
6. FAQ Submission Queue
The purpose of this article is revealing the unrevealed parts of the bitwise XOR.
As we aware, the truth table for the XOR operator is :
A B A^B
0 0 0
0 1 1
1 0 1
1 1 0
For example , 1^2 will be calculated as given below:
First the operands... (1 Reply)
Discussion started by: pandeesh
1 Replies
7. Shell Programming and Scripting
please any one can suggest me how to use bitesie || opearator to do this
#initallize a=0 b=0
#condition
if then
a=0
else a=1
fi
#bitwise or opeartion b = a || b
Please view this code tag video for how to use code tags when posting code and data. (3 Replies)
Discussion started by: Palaniappan
3 Replies
8. Shell Programming and Scripting
Hello,
I want to compute the bitwise number of matches in pairwise fashion for all columns. The problem is I have 18486955 rows and 750 columns. Please help with code, I believe this will take a lot of time, is there a way of tracking progress?
Input
Org1 Org2 Org3
A A T
A ... (9 Replies)
Discussion started by: ritakadm
9 Replies
9. Shell Programming and Scripting
$ ls -1
a.1
b.1
x_a.1
x_b.1
$ ls -1 *
b.1
x_a.1
x_b.1
$ ls -1 **
a.1
b.1
x_a.1
x_b.1The last result is not as expected.
Why?
Thanks. (2 Replies)
Discussion started by: carloszhang
2 Replies
A64L(3) Linux Programmer's Manual A64L(3)
NAME
a64l, l64a - convert between long and base-64
SYNOPSIS
#include <stdlib.h>
long a64l(char *str64);
char *l64a(long value);
DESCRIPTION
These functions provide a conversion between 32-bit long integers and little-endian base-64 ASCII strings (of length zero to six). If the
string used as argument for a64l() has length greater than six, only the first six bytes are used. If longs have more than 32 bits, then
l64a() uses only the low order 32 bits of value, and a64l() sign-extends its 32-bit result.
The 64 digits in the base 64 system are:
'.' represents a 0
'/' represents a 1
0-9 represent 2-11
A-Z represent 12-37
a-z represent 38-63
So 123 = 59*64^0 + 1*64^1 = "v/".
NOTES
The value returned by a64l() may be a pointer to a static buffer, possibly overwritten by later calls.
The behaviour of l64a() is undefined when value is negative. If value is zero, it returns an empty string.
These functions are broken in glibc before 2.2.5 (puts most significant digit first).
CONFORMING TO
XPG 4.2, POSIX 1003.1-2001.
SEE ALSO
uuencode(1), itoa(3), strtoul(3)
2002-02-15 A64L(3)