This is the most common point of confusion for learners.
`不得 (bùdé)`: Formal Prohibition. Used for rules, laws, and regulations. It implies an external authority forbidding an action. (Think: “It is prohibited to…”)
`不能 (bù néng)`: Inability or Lack of Possibility/Permission. This is broader. It can mean you are physically unable to do something (我不能飞 - I can't fly), or that circumstances don't allow it (我现在很忙,不能帮你 - I'm busy now, I can't help you), or a general denial of permission (这里不能抽烟 - You can't smoke here).
`不可以 (bù kěyǐ)`: Informal Denial of Permission. This is used in everyday conversation to tell someone they may not do something. It's more personal and less authoritative than `不得`. (妈妈,我可以吃冰淇淋吗?- 不可以。 Mom, can I eat ice cream? - No, you may not.)
Common Mistake: Using `不得` in casual situations.
Incorrect: 你不得吃我的蛋糕! (Nǐ bùdé chī wǒ de dàngāo!)
Why it's wrong: This sounds overly dramatic, formal, and frankly, weird, as if you're reading a legal statute to your friend about a piece of cake.
Correct: 你不可以吃我的蛋糕! (Nǐ bù kěyǐ chī wǒ de dàngāo!) or 你不能吃我的蛋糕! (Nǐ bù néng chī wǒ de dàngāo!) This is natural and appropriate for an informal setting.