Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Change language to: English - Português - 日本語 - Русский

# bitcmp

bitwise complement

### Syntax

```y = bitcmp(x)
y = bitcmp(x, bitnum)```

### Parameters

x :

a `m`-by-`n` matrix of doubles or a `m1`-by-`m2`-by-...-by-`mm` hypermatrix of doubles or a `m`-by-`n` matrix of unsigned integers (`uint8`, `uint16` or `uint32`). Must contain positive integer values.

bitnum :

a `m`-by-`n` matrix of doubles or a `m1`-by-`m2`-by-...-by-`mm` hypermatrix of doubles or a `m`-by-`n` matrix of unsigned integers (`uint8`, `uint16` or `uint32`). The input `n` must be in the range 1, 2, ..., `bitmax` where `bitmax` is the maximum number of bits in `x`. `bitnum` must contain positive integer values. The default value for `bitnum` is `bitmax`.

y :

a `m`-by-`n` matrix of doubles or a `m1`-by-`m2`-by-...-by-`mm` hypermatrix of doubles or a `m`-by-`n` matrix of unsigned integers.

### Description

Given an unsigned integer `x`, this function returns the unsigned integer `y` which is the integer corresponding to the complementary of the binary form of `x`.

The integer `bitnum` sets the maximum number of bits.

If the bits number of the `x` binary representation is less than the `bitmax` number (8,16 or 32) then the bits `'1'` are added to the complementary in order to have `bitmax` number (8, 16 or 32) for the complementary.

If only one input argument is given, `x` must be a matrix of unsigned integers.

### Examples

```// 13 is (1101)_2
// We insert zeros in the beginning to get a 8-bit number:
// (00001101)_2
// The 8-bits complement is then (11110010)_2
// which is 242
bitcmp(13,8)
expected = 242

// The input argument can be an unsigned int
bitcmp(uint8(99),8)
expected = 156```

 Report an issue << bitand Opérations binaires bitget >>

 Scilab EnterprisesCopyright (c) 2011-2017 (Scilab Enterprises)Copyright (c) 1989-2012 (INRIA)Copyright (c) 1989-2007 (ENPC)with contributors Last updated:Tue Feb 25 08:50:19 CET 2020