You already add and subtract within 1,000 and subtract across zeros. The standard algorithm does the same thing for numbers of any size: one column at a time, starting with the ones.
Key idea
Line up the digits by place. Add: when a column makes 10 or more, write the ones digit and carry 1 to the next place. Subtract: when the top digit is too small, trade 1 from the next place for 10 in this place.
Why it works
Carrying and trading never change the amount. Ten ones are one ten, so swapping them only writes the number in standard form. When a place holds 0, you trade from the next place over: 1 thousand becomes 10 hundreds, then 1 of those hundreds becomes 10 tens, and so on.
Worked example: Adding with carries
Add $4{,}562 + 2{,}879$.
- Ones: $2 + 9 = 11$. Write 1, carry 1 ten.
- Tens: $6 + 7 + 1 = 14$. Write 4, carry 1 hundred.
- Hundreds: $5 + 8 + 1 = 14$. Write 4, carry 1 thousand.
- Thousands: $4 + 2 + 1 = 7$. Write 7.
Answer: $7{,}441$
Worked example: Subtracting across zeros
Subtract $6{,}000 - 2{,}347$.
- Ones: 0 is less than 7, and the tens and hundreds are 0 too. Go to the thousands.
- Trade 1 thousand for 10 hundreds, 1 hundred for 10 tens, and 1 ten for 10 ones. The top is now 5 thousands, 9 hundreds, 9 tens, 10 ones.
- Subtract: $10 - 7 = 3$, $9 - 4 = 5$, $9 - 3 = 6$, $5 - 2 = 3$.
- Check by adding: $3{,}653 + 2{,}347 = 6{,}000$.
Answer: $3{,}653$
Common mistake
Taking the smaller digit from the larger one in each column ($6{,}000 - 2{,}347$ becomes $4{,}347$), or trading into a 0 without trading the 0 too. Always add your answer to the number you subtracted: you should get the top number back.