我是笨蛋,但是我依然渴望成功

本文分享了一位编程新手面对学习挑战的心路历程,包括难以集中注意力、对面向对象编程的理解误区及解决数据库连接问题的经验。作者通过自我反思,尝试改进思维方式,以提升编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然我不愿意承认,但是我知道,我没有学习的天赋。
我的脑袋好像是多动症一样,学习的时候,听讲的时候都不能集中五分钟。最可悲的是我知道有这个毛病很久了,可是我根本改不了,只能一次一次的发现走神的时候在拉回来。
垃圾大学毕业。不是老师教的不好,也不是环境不好,我觉得就是大学不好,这样的大学为了钱把你招进来,为了名让你毕业,你要是不能给他签个就业协议,想毕业就难了。这只是我抱怨下学校管理方便的原因罢了,主要原因还是在我,一个连游戏都玩不好的男生,怎么能编好程序呢。
我不是学习那块料,估计也不可能成为一名优秀的项目经理了。但是我还是想好好努力,实现自己的价值,毕竟我也是学软件,搞技术的。
我的编程之路,从这里开始了。
[color=red]关于面向对象的程序设计[/color]
我脑袋挺笨的,抽象的东西根本想不来。在靠后的课程中,老师经常会提到面向对象的编程,我直接把现实中的各种物体抽象成对象了。现在想想虽然实例化的没什么问题,但是这种抽象实在是太单一了。
面向对象是一种思考问题的方法,是基于所要解决的问题。
对象应该是一个被抽象的概念,不应该简简单单是实物。觉个例子,我也不知道是不是合适,比如说,要削苹果,我以前肯定会把苹果抽象成一个实例,然后就拿刀削呗。但是现在我觉得可以这样想:1.我想要做什么,是削苹果。2.我和苹果之间应该建立起一个链接。就是如何削苹果。3.用刀
我自己感觉吧,应该是这种解决苹果这个对象的方式才是面向对象吧。面向对象,光有“对象”苹果,没有“面向”拿刀,就不应该叫对象。
今天使用hibernate链接数据库,出现问题了。这是一个很久不用的配置文件,以前的时候就是直接配置hibernate的 Hibernate Configuration 和Hibernate Code Generation就可以了。这次没好用,我当时就蒙了(我一遇到问题基本上第一放映就是蒙,跟本没有思路)。直接就问旁边的同事(是带我的师傅)。我举得自己思考问题的的宽度实在是太狭窄了,我就局限在Hibernate Configuration 和Hibernate Code Generation上了,完全没有别的想法(说实话,自己也没有实际配置过)。我觉得自己错在解决问题时侯,思考问题的方法。
在这总结下,应该分层思考。从后往前来呗
第一层:发生错误的地方在哪里,是hibernate。这没有错
第二层: Hibernate Configuration 和Hibernate Code Generation这也没有错。但是我错在了没有继续思考,就抓狂了。
第三层:既然连接不上,我就应该想想在层序中的hibernate配置文件。
第四层:虽然到第三层就结束了,不过我要是还没好,我就应该想想是不是少包了。

我觉得我一遇到问题就蒙,就是没有一个好的思考问题的方式,不知道从哪里开始考虑。现在开始,我就用这种一层一层的方式思考,这也应该是跟主流的MVC编程思想是一样的吧。哈哈
<think>好的,用户之前问过关于C语言中%p格式说明符的问题,现在他提到“十六进制记数法”,我需要确定他具体想了解什么。可能他是在之前的讨论中对十六进制的使用有疑问,或者想更深入理解十六进制在编程中的应用。 首先,我需要回顾之前的对话。用户第一次询问的是p计数法的转换说明,我回答了%p用于指针地址,以十六进制输出。现在他补充说“我意思是十六进制记数法”,说明之前的回答可能没有完全解决他的疑问,或者他想更详细地了解十六进制本身。 接下来,我要考虑用户的身份和使用场景。他可能正在学习C语言,特别是关于内存地址和指针的部分,或者在进行底层编程、调试时遇到十六进制。也可能他在查看内存转储、网络协议或文件格式,这些地方常用十六进制表示。 用户的需求可能是想了解十六进制的基本概念,为什么在编程中常用它,以及具体的使用方法。他可能对二进制、十进制和十六进制的转换感兴趣,或者想知道如何在C语言中使用十六进制字面量,比如定义变量或输出格式。 需要确认十六进制记数法的定义、特点、应用场景,以及在C语言中的具体应用。例如,如何声明十六进制数,如何打印,位操作中的应用,内存地址的表示等。同时要解释为什么十六进制比二进制更方便,比如更紧凑,易于与二进制转换,以及人类可读性较好。 还要注意用户可能的误区,比如混淆%p和%x的区别。%p用于指针地址,而%x用于普通整数的十六进制输出,但两者都使用十六进制形式。需要明确区分它们的不同用途,避免用户混淆。 另外,用户可能对十六进制的转换方法不太清楚,比如如何手动转换十六进制和十进制,或者如何在代码中进行转换。可能需要提供示例代码,比如使用printf的不同格式说明符,或者位操作示例。 最后,确保回答结构清晰,分点说明,涵盖定义、特点、应用、C语言中的使用以及转换方法。避免过于技术性的术语,用简单易懂的语言,让初学者也能理解。同时,检查是否有遗漏点,比如常见问题或注意事项,例如大小写问题,前缀0x的使用等。</think>好的!**十六进制记数法**(Hexadecimal Notation)是一种基数为 16 的数值表示方法,广泛用于计算机科学、编程和硬件设计中。以下是详细介绍: --- ### **1. 基本规则** - **符号范围**: - 使用 **16 个符号**表示数值:`0-9` 表示 0 到 9,`A-F`(或 `a-f`)表示 10 到 15。 - 例如:`0x1A` 表示十进制中的 `26`。 - **前缀标识**: - 在编程中,十六进制数通常以 `0x` 或 `0X` 开头(如 `0xFF`、`0X1F`),以区别于十进制。 --- ### **2. 核心特点** - **二进制友好性**: - 1 位十六进制数(如 `F`)对应 **4 位二进制数**(如 `1111`),便于与二进制快速转换。 - 例如:`0x3F` → 二进制 `0011 1111`。 - **紧凑性**: - 相比二进制,十六进制更简短。例如,十进制 `255` 的二进制是 `11111111`,而十六进制是 `0xFF`。 --- ### **3. 应用场景** - **内存地址表示**: - 操作系统和调试工具常用十六进制显示内存地址(如 `0x7ffeeb0d1234`)。 - **颜色编码**: - 在 Web 开发中,颜色常用十六进制表示(如 `#FF0000` 表示红色)。 - **数据转储与协议**: - 网络协议(如 MAC 地址)、文件格式(如二进制文件头)常使用十六进制。 --- ### **4. C 语言中的十六进制** - **定义变量**: ```c int hex_num = 0x1A; // 等同于十进制的 26 ``` - **格式化输出**: - 使用 `%x`(小写)或 `%X`(大写)输出十六进制: ```c printf("小写: %x\n", 255); // 输出 ff printf("大写: %X\n", 255); // 输出 FF ``` - **位操作**: - 十六进制常用于掩码(Mask)操作: ```c int mask = 0xFF; // 二进制 00000000 00000000 00000000 11111111 ``` --- ### **5. 进制转换方法** - **十六进制 → 十进制**: - 按权展开求和,例如 `0x1F` = \(1 \times 16^1 + 15 \times 16^0 = 31\)。 - **十进制 → 十六进制**: - 反复除以 16,取余数逆序排列(余数 10-15 对应 `A-F`)。 - **二进制 → 十六进制**: - 每 4 位二进制转换为 1 位十六进制(不足补零)。 - 例如:`1101 1011` → `0xDB`。 --- ### **6. 与其他进制的对比** | 进制 | 符号范围 | 典型用途 | |------------|--------------|---------------------------| | 二进制 | `0-1` | 硬件底层操作、位运算 | | 十进制 | `0-9` | 日常计算 | | 十六进制 | `0-9, A-F` | 编程、内存地址、数据表示 | --- ### **示例代码(C语言)** ```c #include <stdio.h> int main() { int num = 0x2B; // 十六进制赋值(十进制为 43) printf("十进制: %d\n", num); // 输出 43 printf("十六进制(小写): %x\n", num); // 输出 2b printf("十六进制(大写): %X\n", num); // 输出 2B return 0; } ``` --- ### **常见问题** - **为什么用 `0x` 前缀?** 这是 C 语言的语法约定,用于区分十六进制和其他进制(如八进制的 `0` 前缀)。 - **十六进制大小写有区别吗?** 在数值上没有区别,但输出时 `%x` 和 `%X` 控制字母大小写。 --- 希望这些信息能帮助你理解十六进制记数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值