筆算（ひっさん）とは、紙に書いて行う計算のことである。その他の計算方法には、暗算、珠算（そろばん）、電卓計算などがある。

暗算と筆算には計算のプロセスに違いが見られる。通常の暗算は日常会話で読み上げたり話したりするときの数を利用し、それは各位に一、十、百のように数詞を当てたものであり、漢数字の九百九のように途中の位に値がなくても成立する。そのため通常の暗算の計算プロセスは位取りの原理の認識（あるいは0の認識）が筆算ほど強くないと言われている。

一方、筆算は計算のプロセスで位取りの原理を利用するため、0は極めて重要な意味を持つ。筆算の計算のプロセスを暗算に応用した筆算式暗算もある。

筆算の方法 
筆算では、分解して計算を行うが、この場合、どのように分解するか、また、紙に計算過程を書く場合の書き方が重要になる。そのため筆算のやり方（便法）が古くから考案されている。一般的には、主に小学校の算数で習得するような、十進法による四則演算（加法、減法、乗法、除法）の筆算がよく知られている。勿論、十進法以外のN進法でも筆算は可能である。日本の場合、以前は高校で開平法の筆算を扱うこともあったが、それについては近年はあまり見なくなっている。

原理的には、位取りと繰り上がり・繰り下がりの仕方さえ覚えれば、アルゴリズムとしては基本的な一桁ないし二桁同士の加減乗除の各演算をするだけで、大きな桁の計算でも計算が可能であるようになっている。具体的な手順は、位取りに気をつけて各位の演算を行い、その結果を桁が縦にそろうように羅列・配置しておき、乗除算においては順次、加減算については順次あるいは最後に一気に、それらを縦に加減して答えを出すといった具合である。

このように方法が単純であるので、計算能力の高低にあまり関係なく実質何桁でも計算できるが、桁数あるいは口数が増えれば位取りや数の繰り上げ・繰り下がりを考慮する手間が増えるため、やはり少々面倒になるのは否めない。

筆算による乗算 

筆算による乗算は、乗数が1桁の場合、右の図(a)のようになる。138×8=1104を例に解説する。
 被乗数を上の段、乗数を下の段に書き、被乗数の1の位と乗数をかける（8×8=64）。得た値の1の位を積の1の位の場所に書き、10の位は小書きする。
 被乗数の10の位と乗数をかけ、得た値に 1. の10の位の値を足す（3×8+6=30）。1. と同様、得た値の1の位を積の10の位の場所に書き、100の位は小書きする。
 100の位についても、同様の操作を繰り返す（1×8+3=11）。被乗数の1000の位はないので、得た値をそのまま積の100の位以降に書く。

乗数が2桁以上の場合は、右の図(b)のようになる。592×69=40848を例に解説する。
 被乗数と乗数の1の位をかけ（592×9=5328）、その結果を乗数の下の列に書く。
 被乗数と乗数の10の位の積（592×6=3552）は、結果を1桁ずらして10の位の位置から書く。
 1. 2. で求めた値を加え（5328+35520=40848）、結果が求める積となる。

もし乗数に100の位、1000の位…があれば、被乗数と乗数の10の位の積を計算した後、被乗数と乗数の100の位の積を2桁ずらして100の位の位置から、被乗数と乗数の1000の位の積を3桁ずらして1000の位の位置から…として書けばよい。

図(b)のような筆算を長乗法と呼ぶ。

被乗数と乗数の一方または両方が小数である場合は、計算途中では小数点を無視して計算し、最後に積に小数点を打つが、このとき被乗数と乗数の小数点以下の桁数の合計の桁数が積の末位からの小数点以下の桁数となるように打つ。

これらのように乗数の下の位から順にかけ算することで解を求める方法を尾乗法と呼ぶ。筆算では尾乗法が一般的である。

対して、乗数の上の位から求める方法を頭乗法と呼び、こちらは暗算の達人などが暗算時に用いる。

筆算による除算 

乗算と減算の組み合わせで、除算を行うことができる。筆算による除算を、21508÷62=346余り56で解説する。
 大きな位から解を求める。62×□<2、62×□<21となる自然数□はないので、10000および1000の位には何も立たない。62×□が215を超えないもっとも大きな整数(=3)が100の位に立つ（小学校の教育でいう「1.たてる」）。215から62×3を引く（215-62×3=29）（小学校の教育でいう「2.かける」、「3.ひく」）。
 被除数から1桁下ろしてくる（小学校の教育でいう「4.おろす」）。62×□が290を超えない最大の整数(=4)が10の位に立つ。290から62×4を引く（290-62×4=42）。
 2. と同様に、被除数から1桁下ろし、62×□が428を超えない最大の整数(=6)が1の位に立つ。428から62×6を引く（428-62×6=56）。
 被除数の上の段に書かれた値が商(346)、一番下の段に書かれた値が余り(56)となる。

このような筆算を長除法と呼び、記号として「⟌（U+27CC）」が使われるのが特徴的である。

小学校の教育では以下のように説明される。
 除算の筆算の手順は、「1.たてる」→「2.かける」→「3.ひく」→「4.おろす」と説明される。
 除数が1桁の場合は単純に乗算の九九を逆に使えばよいが、除数が2桁以上の場合の立商については、除数の上1桁のみを見る、あるいは除数の2桁目を四捨五入した数を元に仮商を立て、必要に応じて修正する。
 除数が小数である場合は、除数が整数になるまで小数点を右に移し、被除数の小数点をそれと同じ桁数だけ右に移し、計算した結果の商の小数点は被除数の移した小数点の上に打ち、余りの小数点は元の位置に打つ。

ちなみに途中の計算過程が明示される形式ではないが、「⟌」を上下反転させたような記号を使ってその右上に被除数、左に除数、下に商を書く形の除法の表し方もあり、これを短除法といい、素因数分解や進法変換など連続して除算を行う場合などで用いられることがある。

筆算による開平 
上記の加算、減算、乗算の組み合わせで、開平（平方根の計算）ができる。
筆算による開平を を例に解説する。

 被開平数 (= 300) を小数点から前後に2桁ずつ区切って書く。
 □ × □ が最初の区切りの数 (= 3) を超えないような数 1 (1×1=1) を重ねて書く。（答の最初の桁の値）
 2. で求めた積 1 を 3 から引き(3-1=2)、次の 2 桁(→00)を降ろす。
 2. で書いた数を加算 (1+1=2) する。
 4. で書いた値 2 について、2□ × □ が 3. の値 (= 200) を超えないような数 7 (27×7=189) を重ねて書く。（答の2番目の桁の値）
 5. で求めた積 189 を 200 から引き(200-189=11)、次の 2 桁(→00)を降ろす。
 5. で書いた数を加算 (27+7=34) する。
 7. で書いた値 34 について、34□ × □ が 6. の値 (= 1100) を超えないような数 3 (343×3=1029) を重ねて書く。（答の3番目の桁の値）
 8. で求めた積 1029 を 1100 から引き(1100-1029=71)、次の 2 桁(→00)を降ろす。
 8. で書いた数を加算 (343+3=346) する。
 10. で書いた値 346 について、346□ × □ が 9. の値 (= 7100) を超えないような数 2 (3462×2=6924) を重ねて書く。（答の4番目の桁の値）
 以下同様。

暗算・筆算と教育 
算数教育は暗算中心主義と筆算中心主義に大別される。イギリスやフランスなどでは筆算中心の教育がとられてきた。