完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
您好,可能很简单,我需要从整数中提取第一个数字,但是所提取的数字需要定义为我想做的整数示例代码;
以上来自于百度翻译 以下为原文 Hello, Probably an easy one, I need to extract the first digit from an integer, but the extracted digit needs to be defined as an integer example code of what I want to do; int number = 487893; int digit = 0; digit = number[0]; |
|
相关推荐
7个回答
|
|
使用ITOA~()或StastFF()函数,它将数字转换为字符串。如果你只需要第一个数字,其他技巧可能会更好,但是…
以上来自于百度翻译 以下为原文 use itoa() or sprintf() functions, which convert a number to a string. Then you can take the first resulting character. If you only need the first digit, other tricks may work better, but... |
|
|
|
你有没有示例,因为我尝试了两种方法,但是都不能使它工作,我相信可能是因为它返回了一个字符串,而不是一个整数?ITOA根本没有工作
以上来自于百度翻译 以下为原文 do you have an example as I tried both but could not get it to work, I believe it may have been because it was returning a string rather than an integer? ITOA didnt work at all |
|
|
|
首先,487893太大而不能作为int存储。对于XC8,int是16位。第二,你说的第一位数是什么意思?如果你的意思是4,那就是你想要的。
以上来自于百度翻译 以下为原文 First, 487893 is too large to be stored as an int. For XC8, int is 16bits. It would have to be a long. Second, what do you mean by first digit? If you mean the 4 then digit=number/100000L; is what you want. |
|
|
|
数字在计算机中存储二进制。没有数字可以得到。您需要将其转换为十进制以创建要获取的数字。将数字转换为字符串是一种方式。你可以得到你想要的角色,然后把它变成一个数字。(减去字符“0”)数学,你可以除以十倍。或者将10除以N,然后做一个模10。我肯定还有其他办法。
以上来自于百度翻译 以下为原文 Numbers are stored a binary in the computers. There is not digit to get. You need to convert it to decimal to create a digit to get. Converting the number to a string is one way. You can the get the character you want and turn it back to a number. (Subtract the character '0') Mathematic you could divide by ten N times. Or divide by 10 to the N then do a modulas 10. I am sure there are other ways. |
|
|
|
然后,LtoA()是一种方式。
以上来自于百度翻译 以下为原文 Then ltoa() is one way. long number=487893L; char temp[12]; int digit; memset(temp,0,12); //clear buffer to ensure only valid values ltoa(temp,number,10); //assuming success and positive values only if (temp[0]) digit=temp[0]-'0'; //first digit... -'0' converts ascii to decimal if (temp[2]) digit=temp[2]-'0'; //third digit |
|
|
|
您必须指定数字的大小。搜索论坛中的bin to bcd、bin2bcd、hex to bcd、doubledabble示例:结果打包为2位数/字节
以上来自于百度翻译 以下为原文 you have to specify the size of number. search forum for bin to bcd, bin2bcd, hex to bcd, double dabble an example: result is packed 2 digit / byte uint32_t double_dabble (uint32_t Fbin) //max 99,999,999 { uint32_t Fbcd, W=0x40000000; while (W) { Fbcd +=(((Fbcd+0x33333333)&0x88888888)>>3)*3; Fbcd<<=1 ; if (Fbin&W) Fbcd++; W >>=1 ; } return Fbcd; } |
|
|
|
我第二个LtoA(),或者这个…或者在某个点停止并执行模10。
以上来自于百度翻译 以下为原文 I second ltoa(), or this one ...OR STOP AT SOME POINT AND PERFORM MODULUS 10 |
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
777浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
676浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:46 , Processed in 1.525352 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号