吾现在有一个一维数组,试图转换为bit。

数组为14x14:

static char word_bitmap[] =
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

转换为bit数组14x2:

//picth 为一行的字节数
static char* byteToBit(char* pBuffer, int w, int h, int pitch)
{int i=0;int j=0;int size = h * pitch;char* bits = (char*)malloc(size);memset(bits, 0, size);char* pRaw = bits;for (i=0; i<h; i++){for (j=0; j<w; j++){int srcPos        = j;int srcPosByte    = srcPos / 8;int srcPosBit     = srcPos % 8;int srcBitValue   = pBuffer[i*w+j] == 0 ? 0 : 1;bits[srcPosByte] |= ((srcBitValue << srcPosBit));}bits += pitch;}return pRaw;
}

输出验证:

static void dumpBit(char* pBuffer, int w, int h, int pitch)
{int i=0;int j=0;printf("w=%d, h=%d\n", w, h);for (i=0; i<h; i++){printf("|");for (j=0; j<w; j++){int srcPos      = j;int srcPosByte  = srcPos / 8;int srcPosBit   = srcPos % 8;int srcBitValue = (pBuffer[srcPosByte] & (0x01 << srcPosBit)) != 0 ? 1 : 0;printf(srcBitValue ? "1" : " ");}pBuffer += pitch;printf("|\n");}
}

全网首发:char数组矩阵转bit的算法相关推荐

  1. [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. [Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. PTA 栈 (20分)(全网首发)(实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1))

    题目描述: 我们知道平凡的栈有几个操作: push(value) 将 value 压入栈 pop() 将栈顶元素弹出, 并返回这个弹出的元素. 现在我们想要在平凡栈的基础上实现以下几个操作: push ...

  5. 全网首发!逆向分析学生机房管理助手7.4随机进程名算法

    一到九月份,学生机房管理助手就直接开始窜稀式更新,连更两个版本,这使我弄不到7.3的样本,只能分析7.4了.大伙有7.3样本欢迎联系我. 7.2版本分析见最新支持7.2!用C++干掉讨厌的学生机房管理 ...

  6. 全网首发,大众奥迪领驭帕萨特DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装

    文章目录 全网首发!大众奥迪DIY数码碟盒增加USB和蓝牙播放音乐功能 前言 1.设计指标 2.方案设计 2.1.外壳选择 2.2.蓝牙方案 2.3.MCU方案 3.原理图设计 4.PCB设计 5.程 ...

  7. 计算机公式筛选,excel筛选计算筛选状态下的计算套路,全网首发!

    excel筛选计算筛选状态下的计算套路,全网首发!,前天刚学习了一个excel的新技术,叫"excel筛选计算"授课老师对我们说,这一技术的专业全称为"excel筛选计算 ...

  8. 软件测试面试必看,资深测试工程师面试题集锦 全网首发

    全网首发,最牛的全套软件测试  ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁.工作几年.你上家公司做什么.负责什么.你的优 ...

  9. 字符串(一):char 数组

    字符串使用方法整理 系列: 字符串(一):char 数组 字符串(二):string 1. 声明 如下是一个例子(=> 表示表达式等价): char a[20] = "abcd&quo ...

  10. c++中关于char数组/char*指针/string类型

    c++中关于char数组/char*指针/string 小渣渣一直被有关string和char[]以及char*的相关问题弄得痛不欲生,传参.返回值.函数调用等到底应该用哪种形式这真的是让小渣癫狂了, ...

最新文章

  1. 编程范式,程序员的编程世界观(转)
  2. linux 查看ip_如何在 Linux 中查看可用的网络接口 | Linux 中国
  3. c语言的时间函数的介绍,c语言中时间函数介绍
  4. Spring学习总结(29)——Spring异步处理@Async的使用以及原理、源码分析(@EnableAsync)
  5. java中import的使用
  6. 为什么Windows的兼容性这么强大,到底用了什么技术?
  7. pycharm调试步骤(详细)
  8. wps使用mathtype编辑数学公式
  9. 2022-2028全球与中国以太网控制器市场现状及未来发展趋势
  10. 用HTML绘制三线表,CSS制作三线表 | 学步园
  11. 如何实现 ASP.NET Core WebApi 的版本化
  12. html网页字体颜色代码大全
  13. SpringCloud优点、缺点
  14. 数据结构--创建并输出二叉树的c语言实现(超详细注释/实验报告)
  15. 冬至时节饮食养生要注意“三多三少
  16. office之PPT插入页码没有反应
  17. ibm 服务器 总显示f1,联想ThinkPad笔记本中F1/F4键盘指示灯一直常亮着如何解决
  18. 超静音 无振动 | TRINAMIC的3D打印机解决方案
  19. 什么是VR全景及优势
  20. java的splititeration,Java Spliterator.estimateSize方法代碼示例

热门文章

  1. 已知二叉树的后序和中序遍历结果 求前序结果
  2. 导入图片后截取_如何截取视频片段?这几个方法比专业剪辑软件还好用!
  3. abb限位开关已打开drv1_软限位开关的设置原理与应用
  4. linux可以同时有两个mysql吗_Linux 同一系统安装两个MySQL
  5. linux npm 使用介绍
  6. 关于@Autowired的使用:推荐使用构造函数进行注入
  7. 在hbase 激活kerberos 下opentsdb的使用
  8. Java使用Executor执行Callable任务时的几种方法
  9. Linux shell 数组
  10. Django中ORM常用字段及字段参数