The confusion arises from the way have commonly occurs both as an auxiliary verb and as a main verb in its own right. As an auxiliary it handles negation and question formation without needing a do:

"I have got a book."

Negation: "I haven't got a book."

Question: "Have you got a book?"

When have is used as a main verb, the "do support" that @Stan mentioned generally cuts in:

"I have a book"

Negation: "I don't have a book."

Question: "Do you have a book?"

"Have you a book?" and "I haven't a book" are understandable but awfully odd in most contexts. They can happen in British English, most famously in the title of the radio panel game I'm Sorry I Haven't A Clue, but most English speakers would insert "got".


English is almost unique in the phenomenon of do-support. Only a few of the Celtic languages and two very small Italian dialects use do in the way English does (and another that uses have in a similar way). It is not unusual, then, that people coming to English from any other language will have a bit of trouble with our use of the word do.

In general, the verb to do is a required part of negating a statement or making a question out of it. Tense is applied to the verb to do rather than to the main verb. (I worked becomes I didn't work or Did you work? in English. In almost every other language even remotely related to English, the negation would be I worked not and the question would be worked you?)

Have not or haven't will generally occur only when the verb to have is being used as an auxiliary. I haven't any ... is also heard occasionally, but it's rare in modern English, especially outside of Britain, and never appears as I have not any ... (except as something that will be marked as incorrect on a student's composition assignment). I haven't got is more common, but in that case have is being used as an auxiliary to the verb to get.


"I have not" is not used to mean "I don't have."

The negative of the present tense is formed by adding do not/does not (or the abbreviated form) between the subject and the verb; only with modal verbs you place not after the modal verb to form the negative.
"I have not" could be understood as short for "I have not [past participle]", which is the negative form of the present perfect.


"I have not X" is normally used in a different way to "I do not have X".

"I have not X", where X is a noun, is archaic and so rarely used in modern speech or writing. It has been replaced with "I do not have X". For example

?I have not an apple.

vs

I do not have an apple.

Where X is a verb phrase, such as "run all the way to Manchester from London", then "I have not" is used:

I have not run all the way to Manchester from London.

vs

*I do not have run all the way to Manchester from London.

As user1579 points out, this distinction comes about because have is being used as a main verb where X is a noun, but an auxiliary verb where X is a verb phrase.