tesseract  v4.0.0-17-g361f3264
Open Source OCR Engine
bits16.h
1 /**********************************************************************
2  * File: bits16.h (Formerly bits8.h)
3  * Description: Code for 8 bit field class.
4  * Author: Phil Cheatle
5  * Created: Thu Oct 17 10:10:05 BST 1991
6  *
7  * (C) Copyright 1991, Hewlett-Packard Ltd.
8  ** Licensed under the Apache License, Version 2.0 (the "License");
9  ** you may not use this file except in compliance with the License.
10  ** You may obtain a copy of the License at
11  ** http://www.apache.org/licenses/LICENSE-2.0
12  ** Unless required by applicable law or agreed to in writing, software
13  ** distributed under the License is distributed on an "AS IS" BASIS,
14  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  ** See the License for the specific language governing permissions and
16  ** limitations under the License.
17  *
18  **********************************************************************/
19 
20 #ifndef BITS16_H
21 #define BITS16_H
22 
23 #include "host.h"
24 
25 class DLLSYM BITS16
26 {
27  public:
28  uint16_t val;
29 
30  BITS16() {
31  val = 0;
32  } // constructor
33 
34  BITS16(uint16_t init) {
35  val = init;
36  }
37 
38  void turn_on_bit( // flip specified bit
39  uint8_t bit_num) { // bit to flip 0..7
40  val = val | 01 << bit_num;
41  }
42 
43  void turn_off_bit( // flip specified bit
44  uint8_t bit_num) { // bit to flip 0..7
45  val = val & ~(01 << bit_num);
46  }
47 
48  void set_bit( // flip specified bit
49  uint8_t bit_num, // bit to flip 0..7
50  bool value) { // value to flip to
51  if (value)
52  val = val | 01 << bit_num;
53  else
54  val = val & ~(01 << bit_num);
55  }
56 
57  bool bit( // access bit
58  uint8_t bit_num) const { // bit to access
59  return (val >> bit_num) & 01;
60  }
61 };
62 #endif
uint16_t val
Definition: bits16.h:28
Definition: bits16.h:25
BITS16()
Definition: bits16.h:30
bool bit(uint8_t bit_num) const
Definition: bits16.h:57
void turn_on_bit(uint8_t bit_num)
Definition: bits16.h:38
BITS16(uint16_t init)
Definition: bits16.h:34
void set_bit(uint8_t bit_num, bool value)
Definition: bits16.h:48
void turn_off_bit(uint8_t bit_num)
Definition: bits16.h:43