Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 30.460.263 Times

bitfile 0.2

Company: Michael Dipperstein
Date Added: September 12, 2013  |  Visits: 242


Report Broken Link
Printer Friendly Version

Product Homepage
Download (16 downloads)

bitfile is a simple class of I/O methods for files that contain data in sizes that aren't integral bytes. The methods contained in this class were created with compression algorithms in mind, but may be suited to other applications.<br /><br />Implementation:<br /><br />Each version of the bitfile library provides a wrapper around the language's native file I/O. The ANSI C version uses file I/O functions and every bitfile is referenced by a structure which includes a FILE pointer.<br /><br />The arraystream library uses a similar structure, replacing the FILE pointer with a pointer to an array of unsigned characters and an array index. Arraystream operations are analogous to bitfile operations in almost all respects and will not be discussed further.<br /><br />The C++ version of the bitfile library makes use of (but does not inherit from) the ifstream and ofstream classes. Every bit file object contains an ifstream pointer and ofstream pointer.<br /><br />The Python version implements a class containing a Python file object.<br /><br />In addition to a reference to a native file, each library includes an 8-bit buffer, and counter responsible for tracking the number of bits in the 8-bit buffer. The C and C++ versions of the bitfile library use an unsinged char for the 8-bit buffer.<br /><br />Reading Bits<br /><br />Reading bits from a bitfile works as follows:<br />Step 1. Read a byte from the underlying file and store it in the 8-bit buffer.<br />Step 2. Set the count of bits in the buffer to 8.<br />Step 3. Report the least significant bit (lsb) in the buffer as the bit read.<br />Step 4. Shift the buffer right by one bit.<br />Step 5. Decrement the count of bits in the buffer.<br /><br />To read an additional bit, repeat the process from Step 3. Once all bits are read from the 8-bit buffer (the count equals 0) the process starts over from Step 1.<br /><br />Writing Bits<br /><br />Writing bits to a bitfile works as follows:<br />Step 1. Left shift the 8-bit buffer by one bit.<br />Step 2. Set the least significant bit (lsb) of the 8-bit buffer to the value of the bit being written.<br />Step 3. Increment the count of bits in the 8-bit buffer.<br /><br />Repeat the process from Step 1 for each additional bit. Once 8 bits have been written to the 8-bit buffer, the buffer is written to the underlying file and the bit count is set to 0.<br /><br />I have incorporated some short cuts that bypass the 8-bit buffer in the functions that read/write characters or bytes.<br /><br />Usage:<br /><br />Rather than writing lengthy man pages for each of the functions in the bitfile library, I have taken a cheap cop-out. The bitfile source includes detailed headers preceding each function. The Python version of the bitfile library includes comments in docstring format.<br /><br />I have also included a file named sample.[c|cpp|py] which demonstrates the usage of each function in the bitfile library and serves as a test to verify the correctness of the code.

Requirements: No special requirements
Platforms: *nix, Linux
Keyword: Array Bitfile Buffer Class Count Followsstep Functions Includes Library Ofstream Operations Pointer Pointerthe Process Python Version Works Written
Users rating: 0/10

License: Freeware Size: 20.48 KB
Games  -  Breakout7
Based on the class Breakout! Breakout 7 includes 10 levels and powerups! Aim for the Sweet Spot to destroy tougher bricks in 1 hit! Requirements: Windows Phone 8.1, Windows Phone 8, Windows Phone 7.5
1024 KB  
Health & Fitness  -  YogiTime Talk Timer
Talking Count-down and Interval timer, Stopwatch with History and Large Display Clock. Works in Portrait and Landscape modes. Wide array of designer and sold-color backgrounds (skins). The Count-Down Timer is displayed as a large Pie Chart...
16 MB  
Development Tools  -  Orbital Mechanics Library 1.0
There are 23 different functions performing basic orbital operations (Hohmann tx, inclination and node changes, orbital parameter conversions, ground tracks, orbit plotting, etc.). Some of these functions are still rough, so please provide...
573.44 KB  
Programming  -  wxVTK 1.3
This class enable VTK to render to and interact with wxWidgets (formerly wxWindows) just as any wxWidgets component. wxVTKRenderWindowInteractor provide a VTK widget for wxWidgets. This class was completely rewritten to have the Look & Feel...
7.9 MB  
Libraries  -  libslaktool 0.1.1
libslaktool provides library functions for advanced Slackware package management, including descriptions and version info. Slaktool is a project to improve the Slackware package manager with all the features of the more advanced package managers...
15.36 KB  
Programming  -  JavaNCSS2Ant 11
This project is an Jakarta Ant add on task that allows the JavaNCSS code metric class to be called as part of the Ant build process. The task allows the specification of threshold values and can flag instances of metrics that exceed these thresholds.
505.64 KB  
Email  -  libgmailer 0.9.0b8 1.0
libgmailer (class GMailer) is a PHP library that allow you to write PHP program to access Google’s free webmail service Gmail. Basically, GMailer connects to the Gmail website and does the data retrival for you. It uses the CURL extension of...
Entertainment  -  Cell Phone Locator Deluxe Lite 1.0
This version includes banners, if you want the full featured version you may also buy it under the name "Cell Phone Locator Deluxe" Your friends will not believe or understand how you did it! With this application you will be able to...
3 MB  
Books  -  ESV Bible for iPhone 1.4.10
****Limited Time! 30% off all add-ons!**** The ESV Bible app includes the entire Bible in the English Standard Version (ESV) translation alongside stunning interactive media including HD videos, high-resolution images, articles, 360-degree virtual...
112 MB  
Games  -  Quasar Battle Lite 1.3
- "A classic retro space shooter arcade game that takes advantage of today's modern hardware and features." The Lite version includes the first 5 levels from the full version available on the Appstore. You can pilot your ship using...
5.2 MB  
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Linux Software  -  SLAX 6.0+
Slax is a modern, portable, small and fast Linux operating system with a modular approach and outstanding design. Despite its small size, Slax provides a wide collection of pre-installed software for daily use, including a well organized graphical...
190 KB  
Linux Software  -  GTK+ 2.5
GTK+, which stands for the GIMP Toolkit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach. Language bindings...
60 MB  
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB