【java编程】使用系统函数的两种方式_世界快消息
有以下种方式实现,其中两种是使用系统函数,另一种是直接自己编写。
(资料图片)
main() {int u10=0; char u16[10]; int w=0,a,b,i;
printf("请输入一个数字-->"); scanf("%d",&u10); //u10=16; if(u10==0) {u16[0]="0"; w++; } else {a=u10; while(a) {b=a%16; if(b<10) {u16[w]="0"+b; } else {u16[w]="A"+b-10; } a=a/16; w++; } } printf("\n"); printf("%d(10)转换为16进制数字为:",u10); for(i=w-1;i>=0;i--) {printf("%c",u16[i]); } printf("\n"); }
自己编写的程序:
/将一个任意输入的10进制数转化为16进制形式输出 #include
void ten20x(unsigned int a,char *p) {int i; int j = 2; int sum = 0; int count = 0; unsigned int mask = 0x80000000;
*(p + 0) = "0"; *(p + 1) = "X"; *(p + 10) = "\0"; while(count < 8) {for(i = 0; i < 4; i++) {if((a & mask) == mask) {sum = sum * 2 + 1; } else {sum = sum * 2 + 0; } a = a << 1; } if(sum < 10) {*(p + j) = sum + "0"; j++; } else {*(p + j) = sum - 10 + "a"; j++; } sum = 0; count++; } }
int main() {unsigned int ver = 0;
char sixtn[MAXSIZE];
printf("please input a num \n"); scanf("%d",&ver); ten20x(ver,sixtn); printf("%d 的16进制为 %s\n",ver,sixtn); return 0; }
使用系统函数实现要加入#include
下面的代码就是3种方式的实现,包括2位的整数和任意整数(2的31次方以内)都可以。可自己选择需要的实现方式。
利用系统函数有
1. char * itoa ( int value, char * str, int base );value是要转化的数字,str是转化后的字符串存储的位置,base是进制数(但是这个函数不是标准C函数,有些编译器是不支持的!)。所以代码可以为:
char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度 char * inttohex(int aa) {itoa (aa, buffer, 16); return (buffer); } 2. sprintf(str,"%x",value);str是转化存储的位置,%x表示十六进制格式,value是要转化的数字。所以代码可以为:
char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度 char * inttohex(int aa) {sprintf(buffer, "%x", aa); return (buffer); } 3. 自己编写
如果参数只要两位数的整数,那么很简单。代码如下:
char buffer [3]; //用于存放转换好的十六进制字符串。由于只要支持2位整数,所以长度3即可 char * inttohex(int aa) {if (aa / 16 < 10) //计算十位,并转换成字符 buffer[0] = aa / 16 + "0"; else buffer[0] = aa / 16 - 10 + "A"; if (aa % 16 < 10) //计算个位,并转换成字符 buffer[1] = aa % 16 + "0"; else buffer[1] = aa % 16 - 10 + "A"; buffer[2] = "\0"; //字符串结束标志 return (buffer); } 如果参数是任意整数,由于计算方法是每次都除以16和对16取余数,余数以倒序的顺序排列就是结果,所以最佳方法是用递归函数(当然循环也可以,但需要最后再进行倒序)。递归代码如下:
char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度 char * inttohex(int aa) {static int i = 0; if (aa < 16) //递归结束条件 {if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + "0"; else buffer[i] = aa - 10 + "A"; buffer[i+1] = "\0"; //字符串结束标志 } else {inttohex(aa / 16); //递归调用 i++; //字符串索引+1 aa %= 16; //计算当前值 if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + "0"; else buffer[i] = aa - 10 + "A"; } return (buffer); }
最后测试代码如下(以sprintf为例,其余只要替换inttohex函数中的代码内容即可):
#include
标签:
相关推荐:
最新新闻:
- 当前动态:一站式的开源持续测试平台---MeterSphere
- 【干货】常见密码归纳(入门级)(上)-世界滚动
- 代码执行的意思是什么?代码执行详情介绍 环球快报
- 【java编程】使用系统函数的两种方式_世界快消息
- finally的作用是什么?java异常处理之finally
- 几何学中多项式是什么?多项式是由变量以及标量的代数式吗?-焦点热文
- 链表中结点的“结”到底是哪个字?节点和结点到底有什么不同?
- 深入理解Java:SimpleDateFormat安全的时间格式化
- 【干货】C++异常处理的三种工具
- 环球微速讯:CART树算法详解 基于训练数据集生成的CART算法
- 中国最出色的互动娱乐企业之一——完美世界-每日视讯
- 智搭36合1创意搭建机器人——STEAM教育的完美课题-热资讯
- HSE配置是什么?频率4-16MHZ的使用方法
- 园方回应游客给大熊猫投喂带包装火腿肠:很气愤!
- 这款Steam新作 展现了俄罗斯人眼中的黑暗格林童话
- 天天看热讯:干货|MindSporeLite整体架构介绍
- 高效的磁力搜索引擎--生产中的测试(二)_全球今日报
- 《街头霸王6》新解说员宣传片公开:日本少女冠军人美声甜!-天天快报
- 《怪物猎人崛起:曙光》主机发售日公开_天天精选
- 环球热头条丨《最后的生还者》PC重制版预告 配置需求公布
- 多人团队射击《恐龙浩劫》将于7月14日正式发售|世界新消息
- 《机械战警:暴戾都市》公布玩法预告延期至9月上市|每日热文
- 床头必备 奥克斯22升小冰箱258元
- 超高颜值 华硕小主机2999元|全球快看点
- 战纹2公布 登录Switch和PC_当前快讯
- 3D打印火箭即将试射
- 百亿补贴便宜100 机械师24寸显示器399元
- 快看点丨复仇爽剧《黑暗荣耀2》明天全集播出:第1季豆瓣8.9
- 【世界独家】internal_server error怎么办
- 《零:月蚀的假面》发售预告片公布 已登陆各平台_热头条
- Epic 2022年度总结:PC用户超2.3亿!送出99款游戏_聚焦
- 固定视角生存恐怖游戏《生者回声》试玩推出 世界时快讯
- 防止App恶意截图 安卓14预览版新功能
- 全球今日报丨万众期待 星空跳票到9月6日
- Homepod对手来了 SONOS新品支持空间音频
- 世界快资讯:电动提取灵魂 音波头部按摩仪149元
- 全球快资讯:索尼担忧微软收购之后COD在PS5上会更差
- 没有五险一金的公司能去吗上班_没有五险一金的公司能去吗
- 热点评!扁平疣的最佳治疗方法是什么(扁平疣的最佳治疗方法)
- 环球速读:《战争雷霆》衍生VR空战游戏《雷霆王牌》公布
- 时讯:传闻:《怪猎崛起:曙光》将于4月28日登陆PS/Xbox
- 【环球新要闻】每天少睡一两个小时算熬夜?专家提醒:大脑会变笨
- 当前头条:U20男足亚洲杯:中国队晋级八强!
- 《闪电十一人》最新作剧情来到初代25年后-世界新资讯
- 天天速递!韩国主帅希望复制02世界杯奇迹:之前能 现在也可以
- 市场监管总局公布第六批查处涉疫药品和医疗用品违法典型案例
- 世界百事通!140W 4060满血释放!ROG新款游戏本首发价9999元
- 腾讯NFT交易软件幻核APP凉了:将于6.30关闭下线
- 《雷顿教授与蒸汽新世界》新预告 支持简中
- 世界视讯!LadyGaga不会在95届奥斯卡表演 忙于拍摄《小丑2》
- iPhone 14 Plus黄色刚发布就破发:立减800 当前观点
- 小米Buds 4 Pro无线耳机即将在国际市场推出、支持蓝牙5.3:观速讯
- Nacon发行商折扣周1折起 《钢铁崛起》75.9元|环球速递
- 数据显示:67%的《卧龙》Xbox玩家没能击败张梁
- 全球动态:游戏囧图:单马尾蒂法好凶 双生舞伶本尊COS来了
- 欺骗感情!90后男子承诺捐1100万没兑现成老赖:985母校怒起诉|焦点
- 环球观速讯丨黑暗童话《惊悚故事3:英格莉忏悔录》今日登陆Steam
- 矿卡崩了也没事!英伟达自信表态:我们游戏显卡也很行-天天热推荐
- 停止续约!米兰体育报:“现在不应该分心,应当全力...
- 焦点热门:PS中国发布《卧龙:苍天陨落》PS5性能宣传片 沉浸体验乱世三国
- 《生化危机4:重制版》广告疑似泄露:试玩Demo明天上线!_每日精选
- 当前信息:《蓓优妮塔起源:瑟蕾莎与迷失的恶魔》公布剧情预告片
- 重获新“声” 清华研发可穿戴人工喉咙还原准确率超90%
- 点亮尘封文明 解谜游戏《落叶城》NS版3月16日推出:快看
- 兼容 13 代酷睿,昂达推出两款主板,售价仅 449 元起
- 独居女生的浪漫之选三星BESOPKEHOME让女性拥抱自我-每日头条
- 聚焦女性健康,腾讯公益“关爱女性健康小红花日”项目启动
- 天天要闻:直降 1000 元,ROG 6 游戏手机优惠抢购,16GB+512GB 豪华配置
- iPhone 攻下日本手机一半市场,第二名夏普,小米等国产机只在 others
- 每日观点:梁朝伟称想重新尝试拍电视剧:美剧、韩剧都可接受
- 外媒:《星空》延期至9月恰好避开了大作云集的夏季
- 《原子之心》双生舞伶扮演者COS自己 自称闲暇时也会玩游戏-今头条
- 环球资讯:时隔4个月富坚义博重新公布进展 《全职猎人》新话缓慢更新
- 《星空》宣布再次延期至9月6日发售
- 《伊苏10》新情报和截图公布 可同时操控男女主战斗