---
title: OSNumber
framework: kernel
role: symbol
role_heading: Class
path: kernel/osnumber
---

# OSNumber

OSNumber wraps an integer value in a C++ object for use in Libkern collections.

## Declaration

```occ
class OSNumber : OSObject
```

## Overview

Overview OSNumber represents an integer of 8, 16, 32, or 64 bits as a Libkern C++ object. OSNumber objects are mutable: you can add to or set their values. Use Restrictions With very few exceptions in the I/O Kit, all Libkern-based C++ classes, functions, and macros are unsafe to use in a primary interrupt context. Consult the I/O Kit documentation related to primary interrupts for more information. OSNumber provides no concurrency protection; it's up to the usage context to provide any protection necessary. Some portions of the I/O Kit, such as IORegistryEntry, handle synchronization via defined member functions for setting properties.

## Topics

### Miscellaneous

- [addValue](kernel/osnumber/1808041-addvalue.md)
- [free](kernel/osnumber/1808049-free.md)
- [init(const char *, unsigned int)](kernel/osnumber/1808057-init.md)
- [init(unsigned long long, unsigned int)](kernel/osnumber/1808065-init.md)
- [isEqualTo(const OSMetaClassBase *)](kernel/osnumber/1808071-isequalto.md)
- [isEqualTo(const OSNumber *)](kernel/osnumber/1808076-isequalto.md)
- [numberOfBits](kernel/osnumber/1808083-numberofbits.md)
- [numberOfBytes](kernel/osnumber/1808091-numberofbytes.md)
- [serialize](kernel/osnumber/1808097-serialize.md)
- [setValue](kernel/osnumber/1808102-setvalue.md)
- [unsigned16BitValue](kernel/osnumber/1808108-unsigned16bitvalue.md)
- [unsigned32BitValue](kernel/osnumber/1808115-unsigned32bitvalue.md)
- [unsigned64BitValue](kernel/osnumber/1808123-unsigned64bitvalue.md)
- [unsigned8BitValue](kernel/osnumber/1808129-unsigned8bitvalue.md)
- [withNumber(const char *, unsigned int)](kernel/osnumber/1808136-withnumber.md)
- [withNumber(unsigned long long, unsigned int)](kernel/osnumber/1808143-withnumber.md)

### Instance Methods

- [addValue](kernel/osnumber/1536683-addvalue.md)
- [free](driverkit/osnumber/free.md)
- [getMetaClass](kernel/osnumber/1536671-getmetaclass.md)
- [init](kernel/osnumber/1536668-init.md)
- [init](kernel/osnumber/3516837-init.md)
- [isEqualTo](driverkit/osnumber/isequalto-58rb9.md)
- [isEqualTo](driverkit/osnumber/isequalto-333kh.md)
- [numberOfBits](driverkit/osnumber/numberofbits.md)
- [numberOfBytes](kernel/osnumber/1536680-numberofbytes.md)
- [serialize](kernel/osnumber/1536674-serialize.md)
- [setValue](kernel/osnumber/1536666-setvalue.md)
- [unsigned16BitValue](driverkit/osnumber/unsigned16bitvalue.md)
- [unsigned32BitValue](driverkit/osnumber/unsigned32bitvalue.md)
- [unsigned64BitValue](driverkit/osnumber/unsigned64bitvalue.md)
- [unsigned8BitValue](driverkit/osnumber/unsigned8bitvalue.md)

### Type Methods

- [withNumber](kernel/osnumber/1536669-withnumber.md)
- [withNumber](kernel/osnumber/3516838-withnumber.md)

## Relationships

### Inherits From

- [OSObject](kernel/osobject.md)

## See Also

### Simple Types

- [OSBoolean](kernel/osboolean.md)
- [OSString](kernel/osstring.md)
- [OSData](kernel/osdata.md)
