# Bit operations

**URL:** <https://forums.imgtec.com/t/bit-operations/363>\
**Category:** PowerVR Insider\
**Created:** [June 1, 2009, 9:46am UTC](https://forums.imgtec.com/t/bit-operations/363 "2009-06-01T09:46:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![hnyk](https://avatars.discourse-cdn.com/v4/letter/h/50afbb/32.png) [@hnyk](https://forums.imgtec.com/u/hnyk)\
**Post date:** [June 1, 2009, 9:46am UTC](https://forums.imgtec.com/t/bit-operations/363/1 "2009-06-01T09:46:58Z")

</div>

Hi  
  
I was just wondering why there aren’t bit operations like bit-shift in OpenGL 2.0 ES Shading Language? Is there some architectural reason?  
  
-hnyk

---

<div class="post-metadata">

**Author:** ![xmas](https://avatars.discourse-cdn.com/v4/letter/x/958977/32.png) [@xmas](https://forums.imgtec.com/u/xmas)\
**Post date:** [June 1, 2009, 10:14am UTC](https://forums.imgtec.com/t/bit-operations/363/2 "2009-06-01T10:14:47Z")

</div>

This restriction allows implementation of the OpenGL ES 2.0 shader pipeline on hardware which is floating point only.

---

<div class="post-metadata">

**Author:** ![hnyk](https://avatars.discourse-cdn.com/v4/letter/h/50afbb/32.png) [@hnyk](https://forums.imgtec.com/u/hnyk)\
**Post date:** [June 1, 2009, 11:52am UTC](https://forums.imgtec.com/t/bit-operations/363/3 "2009-06-01T11:52:09Z")

</div>

Okay, but if it is floating point only, how come there are still variable types like int? Or are they just floating point numbers with lower precision?

---

<div class="post-metadata">

**Author:** ![xmas](https://avatars.discourse-cdn.com/v4/letter/x/958977/32.png) [@xmas](https://forums.imgtec.com/u/xmas)\
**Post date:** [June 1, 2009, 12:13pm UTC](https://forums.imgtec.com/t/bit-operations/363/4 "2009-06-01T12:13:34Z")

</div>

The range requirements for integers are specified so that they can be implemented as floats. Having integers in the language is still useful for type checking and a few other things.
