一道C语言面试题:得到整数的M进制表示字符串
题目:输入整数n和M,输出n在M进制下的表示字符串。如n=3000,M=16,输出16进制下3000的表示字符串,为“BB8”
来源:某500强企业面试题目
思路:对n取模M,将得到的数字压入栈中,再令 n = n / M 的商。重复这一过程,可以得到每一位的数字。
将栈内的数字出栈,并转为字符表达,凑成完整的字符串即可
#include "stdio.h" #include "stdlib.h" #include "string.h" //---------------------------------------- // 将n用M进制表示并输出 //---------------------------------------- #define MAX_NUM 1024 char *M_Ary(int n, int M) { }; ; ; ; ; ; ; i = ; a = n; while (a >= M) { // 反复取余,放入Ary数组中 b = a % M; // 取余数 a = a / M; // 取商 Ary[i] = b; i++; ) ;// 如果越界,返回NULL } Ary[i] = a; num = i + ; // 获得数组长度 str = (); // 创建字符串 ; // 如果创建失败,返回NULL memset(str, , num + ); // 清空字符串 ; i < num; i++) { // 倒序将Ary数组的数字放入str中 c = Ary[num - i - ]; ) { str[i] = ' + c; // 如果是 0-9,则输出数字 } else { str[i] = ); // 如果是 > 10,则输出A-Z } } return str; } //------------------------------------------------------------------------- void TestM_Ary(void) { int n, M; ; n = ; M = ; str = M_Ary(n, M); printf("M_Ary(%d, %d) = %s\n", n, M, str); free(str); n = ; M = ; str = M_Ary(n, M); printf("M_Ary(%d, %d) = %s\n", n, M, str); free(str); n = ; M = ; str = M_Ary(n, M); printf("M_Ary(%d, %d) = %s\n", n, M, str); free(str); } //------------------------------------------------------------------------- int main(int argc, char *argv[]) { TestM_Ary(); getchar(); ; }
一道C语言面试题:得到整数的M进制表示字符串的更多相关文章
- Python输出16进制不带0x补零,整数转16进制,字符串转16进制
Python输出16进制不带0x补零,整数转16进制,字符串转16进制 在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性.例如调试服务端刚接到的二进制数据(里面包含很多 ...
- C语言中怎样定义能够保存16进制整数的变量
可以通过int 或long int存储,16进制整数说到底还是整数,16进制只是一种记数方式.例如,int x=0x16;十六进制(hexadecimal)只是计算机中数据的一种表示方法,规则是“逢十 ...
- 编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示
编写一个算法,将非负的十进制整数转换为其他进制的数输出,10及其以上的数字从‘A’开始的字母表示. 要求: 1) 采用顺序栈实现算法: 2)从键盘输入一个十进制的数,输出相应的八进制数和十六进制数. ...
- 基于visual Studio2013解决面试题之1203转16进制输出
题目
- 运用C语言将图片转换成16进制的字符串(base64)
最近在写手机端的性能测试脚本的时候,发现手机在上传图片数据时,先将图片转换成一堆16进制的字符,将字符传输过去,服务器再将字符解码成图片 我们在loadrunner中测试时,就需要用C语言将图片编码. ...
- 2_C语言中的数据类型 (二)进制
1.1 二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特 ...
- 利用python实现整数转换为任意进制字符串
假设你想将一个整数转换为一个二进制和十六进制字符串.例如,将整数 10 转换为十进制字符串表示为 10 ,或将其字符串表示为二进制 1010 . 实现 以 2 到 16 之间的任何基数为参数: def ...
- 一道C语言面试题:写一个宏,将16位的整数转为Big Endian
题目:输入16位整数x,如0x1234,将其转为Big Endian格式再输出,此例为输出 0x3412 来源:某500强企业面试题目 思路:将x左移8位得到a,将x右移8位得到b,a+b即为所得 / ...
- [笔记]一道C语言面试题:IPv4字符串转为UInt整数
题目:输入一个IPv4字符串,如“1.2.3.4”,输出对应的无符号整数,如本例输出为 0x01020304. 来源:某500强企业面试题目 思路:从尾部扫描到头部,一旦发现无法转换,立即返回,减少无 ...
随机推荐
- 分析java 嵌套类与内部类
一.什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类 ...
- NFC应用(三)点对点(P2P)通信
点对点(P2P)模式允许两个NFC设备之间建立通信链接并交换数据,与读写器.卡模式不一样的就是,P2P模式下数据交互是双向的. P2P遵循ISO18092规范,建立链接后使用NDEF(NFC Data ...
- 分布式文件系统 fastDFS 安装步骤
安装 fastDFS 很简单. 先安装 libevent, 安装成功后,安装fastDFS. ./make.sh ./make.sh install 我使用一台tracker服务器 192.168. ...
- Headroom.js
下载 Development (3.7kB) Production (1.7kB) Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它 ...
- Best Time to Buy and Sell Stock II 解答
Question Say you have an array for which the ith element is the price of a given stock on day i. Des ...
- Extjs实现进度条
做Extjs开发中,往往后台程序可能要执行一段时间才能得到返回结果,加入进度条可以提高客户体验度,以下为两种便捷的方式: 1.提交数据前用Ext.Msg.wait('提示','正在处理数据,请稍候') ...
- js点击事件防止用户重复点击执行
点击事件里给button标签加一个自定义属性,存上次点击时间 追问: 求详细代码,JS 真心的没怎么做过 追答: <input type="button" id=&quo ...
- android ANR 案例分析
案例1:关键词:ContentResolver in AsyncTask onPostExecute, high iowait Process:com.android.email Activity:c ...
- 【十】注入框架RoboGuice使用:(Your First Testcase)
上一篇我们简单的介绍了一下RoboGuice的使用([九]注入框架RoboGuice使用:(Your First Injected Service and BroadcastReceiver)),今天 ...
- unity 3d 生成apk文件时,设置图标
如图所示:注意红线标注部分: 如果安装到手机之后,程序的图标还是unity的默认图标,重启手机即可.