自从用了AI,感觉我的编程水平突飞猛进
比如下面这个代码,直接问AI是什么意思,除了回答的非常详细以外还贴心的告诉你替代的代码。时代真的不同了,学习方法真的有一日千里的感觉。问了AI这两行代码:
*pucRegBuffer++ = (unsigned char)(READ_03 >> 8);
*pucRegBuffer++ = (unsigned char)(READ_03 & 0xFF);
百度AI的回答:
这两行代码是在处理一个字节数组(或缓冲区)的写入操作,具体来说,是将一个16位(2字节)的数据READ_03分解为两个8位(1字节)的数据,并依次写入到pucRegBuffer指向的位置。下面是对这两行代码的详细解释:
*pucRegBuffer++ = (unsigned char)(READ_03 >> 8);
READ_03:从数组READ_03中获取索引为sum的元素,这个元素是一个16位的数据。
>> 8:将这个16位的数据右移8位,这样就得到了高8位的数据。
(unsigned char):将结果转换为unsigned char类型,即8位无符号整数。
*pucRegBuffer++:将转换后的数据写入到pucRegBuffer指向的位置,并将pucRegBuffer指针向前移动一位,以便下一个数据可以写入到下一个位置。
*pucRegBuffer++ = (unsigned char)(READ_03 & 0xFF);
READ_03:再次从数组READ_03中获取索引为sum的元素。
& 0xFF:将这个16位的数据与0xFF进行按位与操作,这样就得到了低8位的数据。
(unsigned char):将结果转换为unsigned char类型。
*pucRegBuffer++:将转换后的数据写入到pucRegBuffer指向的位置,并将pucRegBuffer指针向前移动一位。
综上所述,这两行代码的作用是将一个16位的数据拆分为两个8位的数据,并依次写入到pucRegBuffer指向的内存位置。
有没有其他方法可以写入这两个字节?
当然,有其他方法可以写入这两个字节。下面是一种使用指针和类型转换的替代方法:
unsigned char *ptr = (unsigned char *)&READ_03;
*pucRegBuffer++ = *ptr++;
*pucRegBuffer++ = *ptr;
这里,我们首先获取READ_03的地址,并将其转换为unsigned char *类型的指针ptr。然后,我们通过递增ptr来访问READ_03的低8位和高8位,并将它们依次写入pucRegBuffer指向的位置。
这种方法避免了位移和掩码操作,而是直接通过指针访问和写入字节。这种方法在处理字节级操作时很常见,特别是当你需要访问特定数据类型的字节表示时。 本帖最后由 iffi123 于 2024-9-27 09:24 编辑
这种炫技套娃写法我不喜欢用,拆开写更容易阅读,没必要为了省几个字符,其实编译后代码一样 iffi123 发表于 2024-9-27 09:23
这种炫技套娃写法我不喜欢用,拆开写更容易阅读,没必要为了省几个字符,其实编译后代码一样
这段程序是别人写的,里面故意搞了非常多的弯弯绕。关键字给定义了别名。数字被英文字母替代,不同的文件用不同的名称定义相同的变量。自己写确实可以不用。
现在的AI技术确实对学习帮助很大,我非常看好AI的前景。 多用 ++x,少用 x++
先加是可以预料的,执行完后加基本不可预料
除非对代码逻辑非常熟悉 你说的AI在哪里可以访问到 是免费的还是收费的 ? 崂山 发表于 2024-9-27 10:24
你说的AI在哪里可以访问到 是免费的还是收费的 ?
百度的 CXFLBH 发表于 2024-9-27 10:32
百度的
那不叫AI 你弄错了
没有具体的,明确的网址,没有具体服务公司说明,是否免费也不声明。
明天是否继续为你服务还得两说。
只不过是人家为了面子赏赐给你我,一个方便而已
要感谢也得感谢洋人首先给了全球(自己屏蔽掉除外)免费的chatGPT
否则,................ 崂山 发表于 2024-9-27 10:45
那不叫AI 你弄错了
没有具体的,明确的网址,没有具体服务公司说明,是否免费也不声明。
这个无论是哪家的,只要对我们有帮助,而且目前是不收费的,都是有益的。 AI的意义就是让你在查找资料的时候更加的精准,方便快捷。比如你想实现代码功能,AI就能够自动给你生成。
直接memcpy多好,一次复制一个数据块完事。偏要一个字节一个字节的复制,慢还不说,还不容易理解。 用AI弄51单片机程序,错误不少 分立元件 发表于 2024-9-27 12:18
用AI弄51单片机程序,错误不少
AI主要是学习编程技巧,编程必须要靠自己,谁都靠不住。 这种程序技巧真的不推荐,我让手下编程,首先是要程序易懂,不会引起歧义。 自动的多了终会有一天故障了,厕所顿满了人,不知怎样擦屁股,于是会产生一个重要经验,那东西不是必须的50分钟后屁股就干了!