int类型数组压缩为char类型数组存储

来源:互联网 发布:mysql中timestamp类型 编辑:程序博客网 时间:2024/05/16 00:36

本文以C++语言实现int数组压缩存储以及解压缩取出的例子。
原理:int类型数占16位,char类型占8位。int转为char默认保留低八位。

#include<iostream>using namespace std;#include<cstdlib>#include<ctime>void pack(int a[], unsigned char b[], int n);void unpack(unsigned char b[], int a[], int n);void main(){    int i=0, n=0;    cout << "输入n:";    cin >> n;    int c[100000] = {0};    unsigned char p[100000] = {0};    srand((unsigned int)(time)(NULL));    for (i = 0; i < n; i++)    {        c[i] = rand() % 255;    }    pack(c, p, n);    cout << "压缩数组:";    for (i = 0; i < n; i++)    {        cout << p[i] << endl;    }    unpack(p, c, n);    cout << "解压数组:";    for (i = 0; i < n; i++)    {        cout << c[i] << endl;    }}void pack(int a[], unsigned char b[], int n){    for (int i = 0; i < n; i++)    {        b[i] = a[i];    }}void unpack(unsigned char b[], int a[], int n){    for (int i = 0; i < n; i++)    {        a[i] = b[i];    }}

char c1 =-1;
cout<< (int)c1 << endl;
输出为:-1
unsigned char c2 = -1;
cout << ( int)c2 << endl;
输出为:255
这里写图片描述
这里写图片描述
这里写图片描述

阅读全文
1 0
原创粉丝点击