简单题目:给出一个整数,转换为16进制的字符
一 题目
给出一个整数,转换成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进制的字符相关推荐
- 编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示。
编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从'A'开始的字母表示. 要求: 1) 采用顺序栈实现算法: 2)从键盘输入一个十进制的数,输出相应的八进制数和十六进制数. ...
- 面试题--位操作--将十进制数转换为16进制字符串输出
这是一道面试题: 编程实现将十进制数转换为16进制输出,不得使用任何已定义的库函数,比如string,math等. char * get16String(long num) { int i = 0; ...
- 10进制转换为16进制数——算法
10进制转换为16进制数 题目描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至 ...
- 汇编-输入8位二进制串并转换为16进制数显示到屏幕(利用8421转换)
今天编写了一个 输入二进制串并转换为16进制数显示到屏幕 的汇编程序 在编写过程中遇到一些问题,并解决后,想把它与大家分享. 题目是这样的: 分析题目: 可得要求 输入 11111111 得到 00F ...
- 1253. 将数字转换为16进制
1253. 将数字转换为16进制 给定一个整数,写一个函数将其转换为16进制.对于负整数,需要使用二进制补码. 样例 样例1 输入:26 输出:"1a" 样例2 输入:-1 输 ...
- 将数字转换为16进制
给定一个整数,写一个函数将其转换为16进制.对于负整数,需要使用二进制补码. 样例 样例1 输入:26 输出:"1a" 样例2 输入:-1 输出:"ffffffff&qu ...
- Python进制转换10进制转换为16进制,不使用hex函数
笔试中遇到的问题 Python进制转换10进制转换为16进制,不使用hex函数 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字 ...
- 蓝桥杯 基础练习 十进制转换为16进制
资源限制 内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示 ...
- python任意进制转换界面_python:整数转换为任意进制(
javascript提供了一个number.toString(baseNum)的函数,能够将number转换为36进制以下的字符串. python里面仅提供了将字符串转换为整数的函数,并没有提供相应的 ...
最新文章
- linux模拟器 cygwin源
- 百度绝对控股,小度科技独立融资,投后估值200亿元
- oracle收集统计计划,oracle收集统计信息之analyze
- GraphQL和REST对比时需要注意些什么
- KVM虚拟化实战精讲[第五章 利用virsh对虚拟机管理]
- linux c实现myecho、mycat、mycp
- EasyDarwin开源流媒体服务器如何实现按需推送直播的
- pylon 内存泄露的问题
- 从 2,000 到 25,000 工程师,微软开源如何制霸 GitHub?
- 手动指定 main 函数作为入口libvcruntimed.lib
- 中南大学 科学计算和MATLAB 初级语言学习01_02
- UGUI的Drag实现鼠标拖拽
- list集合去重和排序
- Word/Excel快捷键F4(重复上次操作)失效的解决办法
- 【老九】【Java】随机数详解
- LIO-SAM imuPreintegration
- 华为云数据库mysql云灾备方案_华为云MySQL云灾备解决方案,为企业数据提供全方位的异地保护...
- SSM ==> 超市管理系统(mysql)
- 影院售票系统设计与开发 毕业设计毕设参考
- ERROR : Error appeared during Puppet run: 192.168.1.201_mariadb.pp