编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列

 1 template <typename T>2 void displayHexBin(const T& v)3 {4     const unsigned char c2h[] = "0123456789ABCDEF";5     const unsigned char c2b[] = "01";6 7     unsigned char* p = (unsigned char*)&v;8     char* buf = new char [sizeof(T)*2+1];9     char* ptmp = buf;
10     p = p + sizeof(T)-1;
11     for (int i = 0; i < sizeof(T); i++, --p) {
12         *buf++ = c2h[*p >> 4];
13         *buf++ = c2h[*p & 0x0F];
14     }
15     *buf = '\0';
16     printf("hex format displayed as %s\n", ptmp);
17
18     delete [] ptmp;
19     p = (unsigned char*)&v; p = p + sizeof(T)-1;
20     ptmp = buf = new char [sizeof(T)*8+1];
21     for (int i = 0; i < sizeof(T); i++, --p) {
22         for (int j = 0; j < 8; j++)
23             *buf++ = c2b[(*p >> (7-j)) & 0x1];
24     }
25     *buf = '\0';
26     printf("bin format displayed as %s\n", ptmp);
27     delete [] ptmp;
28 }
29 

转载于:https://www.cnblogs.com/zerolee/archive/2012/06/17/2552500.html

非printf形式的十六进制和二进制打印(雅虎面试题)相关推荐

  1. 排序算法:快速排序算法实现及分析(递归形式和非递归形式)

    快速排序算法介绍 从名字上就可以看出快速排序算法很嚣张,直接以快速命名.确实快速排序 的确很快速,被列为20世纪十大算法之一.程序员难道不应该掌握么.快速排序(Quick Sort)的基本思想是:通过 ...

  2. c语言位运算八进制转二进制,C语言十进制转换二进制八,十六进制。二进制转十进制。...

    C语言十进制转换二进制八,十六进制. 十进制转二进制有个计算公式,就是除以2取余再倒序显示余数就是了.可以根据公式写.八制进公式也同理.十六进制有点不一样,大于9的要转为字母.A,B,C,D,E,F. ...

  3. 进制转换(C++):十六进制、二进制、十进制(附源代码)

    思路如下: 十进制转二进制:除二求余,得到低位到高位的二进制数字排列 十进制转八进制:除八求余,得到低位到高位的八进制数字排列. 十进制转十六进制:除十六取余,得到低位到高位的十六进制数字排列,对于  ...

  4. 第四章第十二题(十六进制转二进制)(Hex to binary)

    4.12(十六进制转二进制)编写一个程序,提示用户输入一个十六进制数,显示其对应的二进制数.对于不正确的输入数字,提示非法输入. 下面是一个运行示例: Enter a hex digit: B The ...

  5. poj 3323 Matrix Power Series (矩阵乘法 非递归形式)

    为了搞自动机+矩阵的题目,特来学习矩阵快速幂..........非递归形式的求Sum(A+A^2+...+A^k)不是很懂,继续弄懂................不过代码简洁明了很多,亮神很给力 # ...

  6. 二叉树遍历(先序,中序,后序,层序)递归和非递归形式

    文章目录 1.先序遍历 定义 递归 非递归(栈) 2.中序遍历 定义 递归 非递归(栈) 3.后序遍历 定义 递归 非递归(栈) 4.层序遍历 定义: 代码实现(队列) 二叉树的遍历是通过一定顺序来访 ...

  7. Matlab中十六进制和二进制值数转换

    目录 使用十六进制和二进制表示法表示整数 将十六进制和二进制值表示为文本 将十六进制值构成的数组表示为文本 将二进制表示转换为十六进制表示 使用二进制值的按位运算 可以将数字表示为十六进制或二进制值. ...

  8. 汇编语言 十六进制转换为二进制

    今天写了十六进制转换为二进制的汇编语言小程序,感觉挺有逻辑性的,运用条件分支,进行转换,这里把自己的心得分享一下,希望对大家有点小小的启示 由于,代码中已经有了详细注释,在这里我只是说出我写该程序的思 ...

  9. 16进制ff转化为二进制_3秒钟快速转换十六进制为二进制

    这里介绍下如何快速将十六进制转换为二进制: 举例,ipv6地址:FE80::1 先将FE80拆分为FE和80,我们知道F是十进制的15,E为14,我们知道二进制的八位组,全为1时(1111 1111) ...

最新文章

  1. python制作一个教学网站_小白如何入门Python? 制作一个网站为例
  2. 服务降级和服务熔断的区别_Spring Cloud 熔断 隔离 服务降级
  3. 八.linux系统文件属性知识
  4. PeekMessage
  5. 下载--保存(下载)文件到本地(.doc .jpg)
  6. c++ 写文件怎么让0x00不被识别成结束符_使用docker-copyedit工具删除镜像中不需要的环境变量和VOLUME...
  7. Numpy 数组的切片操作
  8. php 字符串操作函数
  9. 深信服智安全 SCSA---1
  10. 生信技能树课程记录笔记(二)20220523-20220524
  11. attention 文字识别算法_一文带你了解文字识别
  12. 实用常识 | 写论文时如何引用插入脚注 / 如何自定义脚注符号 / 如何将多个脚注合并在一起
  13. 2018怎样发英文外链才能提升谷歌排名
  14. android win7 共享网络打印机,详解win7共享打印机如何设置
  15. Elsevier论文模板没有author biography的解决办法
  16. ∘(空心的点乘)的数学含义
  17. 想搭建一个专属于你的网站吗??新手向超详细攻略
  18. hostiko模板-WHMCS自适应模板-略站网
  19. CentOS7 好日子到头了,如何优雅的抛弃 CentOS7?
  20. Win版4S降级工具odysseusOTA4教程百分之百成功

热门文章

  1. matlab 带通滤波器_这就够了?一阶高通数字滤波器
  2. 罗马仕php30重量,充电宝多少毫安最好?这3款罗马仕充电宝必须收藏
  3. 同样是程序员,他转行在新加坡卖鱼走向巅峰!
  4. 搭建golang+vscode开发环境
  5. 颠覆世界的新技术:区块链
  6. three.js 坐标系、camera位置属性、点、线、面
  7. 阿里巴巴内部开发手册
  8. Flume篇---Flume安装配置与相关使用
  9. 一篇关于我是怎么理解喜欢上并且做好前端开发工作的文档
  10. memcached演练(2) 访问memcached服务