完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
|
|
ggh0522 发表于 2018-4-13 11:30 int a = 15; int b = 8; int z; 我想变成在 z = 0xf8 (也就是 z = 0xab ,就是把a和b 的值代进去) 或者我这样行不行,z = a*16 +8 (z = 248也就是 z = 0xf8) |
|
|
|
ggh0522 发表于 2018-4-13 11:30 或者这么说吧: int a = 248; z = a;(这时我怎么把 z = a; 转成 z = 0xf8;) (虽然 z = 248和z = 0xf8是一样的,但要怎么转过来,我最后就是想要得到一个z = 0xf8) |
|
|
|
数据的存储都是二进制的,至于十进制,十六进制只是计算和表示的区别,在这里 Z=248=0XF8,区别只是在于怎么表示,比如在液晶或数码管显示的话,十进制显示248,十六进制显示F8,你得说明为什么需要的是Z=0XF8
|
|
|
|
|
|
|
|
差不多是这个意思;不过上面举例是低8位的。 上面的有点看不懂,为什么 i = 0xaabb? 如果有:(这个举例是16位的) int a, b, c, d; a和b组成低8位(ba);c和d组成高8位(dc),这个要怎么转? |
|
|
|
现在使用的都是8位以上的单片机,在8位机中都是以8位为基础处理数据的,极少把8位数据再分解为高4位和低4位来处理,虽然有一些使用案例,但现在对你讲你也不能理解,随着学习水平提高自然就明白了。 |
|
|
|
8位和8位组合只能组合成16位,如果8位和8位组合成8位的话,除非有特定的组合规则,否正会丢失数据16位是65535,8位是256,丢失了很多数据的 |
|
|
|
我记得c语言有连接字符串的函数,可以支持连接运算的。
|
|
|
|
本帖最后由 GreatDream 于 2018-4-13 22:54 编辑
wulinwl 发表于 2018-4-13 21:03
不管前面的,你看看下面的可以实现? int a = 248; z = a;然后再怎么把 z = a转成 z=0xf8;(这个你可以当成高8位的吧) int b = 169; y = b; 然后再怎么把 y = b转成 y = 0xa9;(这个你可以当成低8位的吧) 这个要怎么实现? |
|
|
|
本帖最后由 GreatDream 于 2018-4-13 23:23 编辑
有点像c语言一样: int main() { int a = 248; int b = 169; printf("z = %#xn", a); printf("y = %#xn", b); return 0; } 就是想得到输出的z和y一样的结果; 但在单片机中怎么输出这样的z和y; |
|
|
|
z是整形的,如果值是248,那他在内存中就是0x000000F8。你应该把他最低的8位取出来,然后再分别取两次4位到两个变量中,最后把两个变量的值转换成可见字符,这两个变量的最大值不会超过15。不知有没有帮助 :)
uint8_t test(void) { uint8_t hi4 = 0; uint8_t lo4 = 0; uint8_t z = 248; hi4 = (z & 0xF0) >> 4; lo4 = (z & 0x0F); if(hi4 >= 'A') hi4 -= (10 - 'A'); else hi4 += '0'; if(lo4 >= 'A') lo4 -= (10 - 'A'); else lo4 += '0'; //printf("0x%0x", z); //printf("0x%c%c", hi4, lo4); } |
|
|
|
GreatDream 发表于 2018-4-13 22:45 |
|
|
|
是不是说也可以这样合成8位的: char x, y, z; void main() { x = 15; y = 8; z = x<<4|y; } 又或者这样合成16位的: char x, y, a; int z, b; void main() { x = 10; y = 9; a = x<<4 | y; b = 248; z = b << 8 | a; } 是这样的? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
180 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
587 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
549 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
548 浏览 0 评论
1051 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 17:40 , Processed in 0.886197 second(s), Total 102, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号