永发信息网

#define fp_is_neg(val) ((((uint8_t*)&val)[3] & 0x80) != 0),这个函数的功能是....

答案:1  悬赏:40  手机版
解决时间 2021-01-18 05:23
#define fp_is_neg(val) ((((uint8_t*)&val)[3] & 0x80) != 0),这个函数的功能是....
最佳答案
我们可以倒着推到
fp_is_neg(val)应该只有两种值 布尔类型的 0 或者 1,这一点从 最后 != 这个是个判等符号 ,优先级是最低的 也就是最后执行一个符号 。
(uint8_t*)&val : 其中 &val是取val的地址 (uint8 *)&val c语言是没有uint8的 应该是自己定义的数据类型 字面意思 是个无符号8位整型 typedef unsigned char uint8 或者#define uint8 unsigned char . (uint8 *)&val 把变量val的地址作为一个指针变量
再看这句 ((uint8_t*)&val)[3] 很容易理解了 把指针当数组首地址用,((uint8_t*)&val)[3] 是数组的第4个元素
(((uint8_t*)&val)[3] & 0x80) 用数组的第3个元素 和 0x80(一个十六进制数)按位与预算,0x80的二进制10000000这应该是一个掩码 把低7位掩盖这样就能判断最高位是 1还是0了
如果((uint8_t*)&val)[3]中的数据最高位是 0 ,由于 0=0所以0((((uint8_t*)&val)[3] & 0x80) != 0) 这条语句为假c语言规定假也就是false 语句的值是0 也就是fp_is_neg(val) ==0,反之fp_is_neg(val) ==1.
若果我说的不对 ,求高手指点
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
win7手动断网再连经常连不上,有事错误651,
群创光电的介绍
少女们的证明完全爆衣方法怎么打到全果
ue tf10耳机到底如何,与er4p横评呢?
关于双本科学历
有没有会做告白链接的,就是那种告白网页,给
描写窗外美景的唐诗吗?
臭贵鱼如何腌制
北京世纪国源科技股份有限公司 怎么样?
跪求“220字到300字”以内的短片文言文5篇以
“壑”字怎么读?是什么意思?
徐庶和庞统谁更聪明
阎魔爱或长门有希win7主题和高清桌面壁纸 其
红米手机怎么开启自动同步
第8代标压U的笔记本什么时候上市,我要准备买
推荐资讯
大米外面那层米皮有卖吗?
14岁的老猫吃什么 如何喂养老年猫咪
现在这个版本亚索能出鬼索吗
江西赣州有陶家祠堂吗?
西峰北广场那个石像是谁?
男生为什么喜欢年纪小的女生特别是18岁那种感
普通车床车皮带轮的方法及具体步骤
钢琴钢板为什么没有钢印
Pb管用于哪些方面?
下列各句中,没有语病的一句是 A. 整座大桥在
如果有7个大人和3个学生,该怎样买
水榭花城3期停车场地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?