一 题目

给出一个整数,转换成16进制的字符输出。

二 问题分析

利用进制转换方法:用按权展开法。


然后,1500的十六进制转换结果为:5DC

三 代码

3.1 C实现

char * convertToBase16(int num)
{if (!num){return "0";}char * retstr = (char *)malloc(12*sizeof(char)); // 分配存放区域memset(retstr, '0', 12*sizeof(char));if (num < 0){strcat(retstr, "-");num = -num;}char arr[12];memset(arr, 0, 12*sizeof(char));int i = 0;while (num > 0){if (num%16 >= 10)arr[i] = (char)( (num%16 - 10) + 'A' );elsearr[i] = (char)( num%16 + '0' );num = num / 16;i++;}i--;for ( ; i >= 0; i--){strncat(retstr, arr+i, 1);}return retstr;
}

Tips:

void memset(void * str, int c, size_t n);
复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前n个字符

char * strcat(char * dest, const char * src);
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾

char *strncat(char *dest, const char *src, size_t n)
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。

// 直接输出
void convertToBase16(int num, int k)
{if (!num){cout << "0x0";return;}char arr[12];if (num < 0){num = -num;cout << "-";}int i = 0;while (num > 0){if (num%16 >= 10)arr[i] = (char)( (num%16 - 10) + 'A' );elsearr[i] = (char)( num%16 + '0' );num = num / 16;i++;}i--;cout << "0x";for ( ; i >= 0; i--){cout << arr[i];}}

3.2 C++实现

string convertToBase16(int num)
{string s;// boundaryif (!num)return "0";int flag = 0;if (num < 0){flag = 1;num = -num;}char reset;while (num > 0){reset = char(num % 16) + '0';num = num / 16;s = reset + s; //后得到的,写在前面,进制转换的计算方法}if (flag)s = '-' + s;return s;
}

简单题目:给出一个整数,转换为16进制的字符相关推荐

  1. 编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示。

    编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从'A'开始的字母表示. 要求: 1) 采用顺序栈实现算法: 2)从键盘输入一个十进制的数,输出相应的八进制数和十六进制数. ...

  2. 面试题--位操作--将十进制数转换为16进制字符串输出

    这是一道面试题: 编程实现将十进制数转换为16进制输出,不得使用任何已定义的库函数,比如string,math等. char * get16String(long num) { int i = 0; ...

  3. 10进制转换为16进制数——算法

    10进制转换为16进制数 题目描述 ​ 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至 ...

  4. 汇编-输入8位二进制串并转换为16进制数显示到屏幕(利用8421转换)

    今天编写了一个 输入二进制串并转换为16进制数显示到屏幕 的汇编程序 在编写过程中遇到一些问题,并解决后,想把它与大家分享. 题目是这样的: 分析题目: 可得要求 输入 11111111 得到 00F ...

  5. 1253. 将数字转换为16进制

    1253. 将数字转换为16进制   给定一个整数,写一个函数将其转换为16进制.对于负整数,需要使用二进制补码. 样例 样例1 输入:26 输出:"1a" 样例2 输入:-1 输 ...

  6. 将数字转换为16进制

    给定一个整数,写一个函数将其转换为16进制.对于负整数,需要使用二进制补码. 样例 样例1 输入:26 输出:"1a" 样例2 输入:-1 输出:"ffffffff&qu ...

  7. Python进制转换10进制转换为16进制,不使用hex函数

    笔试中遇到的问题 Python进制转换10进制转换为16进制,不使用hex函数 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字 ...

  8. 蓝桥杯 基础练习 十进制转换为16进制

    资源限制 内存限制:512.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示 ...

  9. python任意进制转换界面_python:整数转换为任意进制(

    javascript提供了一个number.toString(baseNum)的函数,能够将number转换为36进制以下的字符串. python里面仅提供了将字符串转换为整数的函数,并没有提供相应的 ...

最新文章

  1. linux模拟器 cygwin源
  2. 百度绝对控股,小度科技独立融资,投后估值200亿元
  3. oracle收集统计计划,oracle收集统计信息之analyze
  4. GraphQL和REST对比时需要注意些什么
  5. KVM虚拟化实战精讲[第五章 利用virsh对虚拟机管理]
  6. linux c实现myecho、mycat、mycp
  7. EasyDarwin开源流媒体服务器如何实现按需推送直播的
  8. pylon 内存泄露的问题
  9. 从 2,000 到 25,000 工程师,微软开源如何制霸 GitHub?
  10. 手动指定 main 函数作为入口libvcruntimed.lib
  11. 中南大学 科学计算和MATLAB 初级语言学习01_02
  12. UGUI的Drag实现鼠标拖拽
  13. list集合去重和排序
  14. Word/Excel快捷键F4(重复上次操作)失效的解决办法
  15. 【老九】【Java】随机数详解
  16. LIO-SAM imuPreintegration
  17. 华为云数据库mysql云灾备方案_华为云MySQL云灾备解决方案,为企业数据提供全方位的异地保护...
  18. SSM ==> 超市管理系统(mysql)
  19. 影院售票系统设计与开发 毕业设计毕设参考
  20. ERROR : Error appeared during Puppet run: 192.168.1.201_mariadb.pp

热门文章

  1. 2022好用不亏的数码产品推荐、趁着618还没结束赶紧入
  2. Python爬取新闻动态评论
  3. 有道云生成html,有道云笔记实用技巧 一键保留网页剪报
  4. 一篇文章带你了解UWB
  5. 今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事12月20日
  6. CAD高版本图纸打不开,用它解决
  7. java中如何统计字符出现的次数
  8. 【存储】SCSI、iSCSI协议详解及对比
  9. RFID室内定位技术未来发展遇到的五大难题浅析-新导智能
  10. Day8:财报分析3:为什么自由现金流如此重要?