サルッツォー侯ワルテルは家臣から結婚を迫られ、貧しい田舎娘グリセルダを妻に娶る。グリセルダは良妻の鑑のような女性だったが、ワルテルはグリセルダの自分への愛を試そうと、とんでもないことを考える。『デカメロン』に出てくる話で、おそらく口承文学から採られたものだろうと指摘されている。1374年にペトラルカが高徳・貞節を表す教訓的逸話としてラテン語に翻訳し、学僧はそのペトラルカから聞いた話と「序」で前置きしている。ペトラルカの詩は1382年から1389年頃、Philippe de Mézièresによってフランス語にも翻訳されている。『バースの女房の物語』のアンチテーゼとも言える話だが、結句がついていて、その中でチョーサーは自分の妻を試す夫は愚か者だと注釈している。
物乞いして暮らしている托鉢僧の話。托鉢僧からしつこく寄進を迫られた病人が、托鉢僧の仲間たちに等分することを条件にとんでもないものを寄進する。
無実の人を偽りの罪で教会裁判所（Ecclesiastical court）に召喚すると脅して、金をまきあげる悪徳刑事は、偶然出会った郷士と兄弟の契約を交わすが、実は郷士は悪魔だった。刑事は、相手が悪魔と知りながら、さらなる悪事を働こうとするが——。
アーサー王は、死刑の決まった家来の若い騎士に対して、命を助ける条件として「女は何が一番好きか」の答えの探索を命じ、1年と1日の猶予を与える。騎士は旅の途中に出会った醜い老婆からその答えを教えてもらい、王宮でそれを言うと、女性全員の同意を得られ、無事死刑を免れた。しかし、老婆はその御礼に騎士に「結婚」を求め、無理矢理結婚させられる。そして、新婚の床に入ることになったが——。中世文学の「Loathly lady（嫌でたまらない女）」モチーフを利用している。その古い例ではアイルランド神話の『Niall Noígíallach』がある。アーサー王の甥ガウェインを主人公にした『ガウェイン卿とラグネル婦人の結婚（The Wedding of Sir Gawain and Dame Ragnelle）』やバラッド『ガウェイン卿の結婚（The Marriage of Sir Gawain）』も『バースの女房の話』と同じ話である。
5度の結婚歴のあるバースの女房（アリスーン）が、自分の人生について長々と語る。その中で、バースの女房は、イエス・キリストは決して複数の結婚を否定しなかったし、アブラハムやヤコブやソロモン王も二人以上の妻を持ったと例証することで自分の生き方を正当化し、さらに貞節や処女性を重視する価値観を次々と論破してゆく。
数奇な運命を辿るローマ皇帝の王女クスタンス姫の話。クスタンス姫に恋をしたシリアのサルタンはキリスト教に改宗し、クスタンスを王妃に迎える。しかし、サルタンの母親の陰謀でサルタンは虐殺され、クスタンスは海に流される。長い漂流の末、クスタンスは奇跡的にグレートブリテン島のノーサンバーランドに漂着する。その地の王アラ（モデルとなったのは実在のノーサンバランド王Ælla）はクスタンスを気に入り、キリスト教に改宗し、結婚。マウリシュウスという子が生まれるが、王の母親の陰謀で子供とともに海に流されるが——。1387年頃に書かれた。ジョン・ガワーが『恋人の告白（Confessio Amantis）』で取り上げた、ニコラス・トリヴェット（Nicholas Trivet）の『年代記』の中の挿話に基づく。
C言語での実装例:#define KEY_UP       (1 << 0)#define KEY_RIGHT    (1 << 1)#define KEY_DOWN     (1 << 2)#define KEY_LEFT     (1 << 3)#define KEY_BUTTON1  (1 << 4)#define KEY_BUTTON2  (1 << 5)int gameControllerStatus = 0;void keyPressed(int key) {     gameControllerStatus |= key;}void keyReleased(int key) {    gameControllerStatus &= ~key;}int isPressed(int key) {    return gameControllerStatus & key;}2の冪乗を表すためにハードコードされた数値(0x08)を使用する代わりに、ビットシフト演算子を使用した表現を使用すると、ビットマスクを示すものであるというプログラマの意図が明確になり、可読性の観点からすると望ましい。カーニハンとリッチーの本、プログラミング言語Cでは、直接フィールドを定義し、アクセスする方法が記述されている。この方法を使用することで、ビット演算子が不要となり、ビットメンバに構造体メンバと同じようにアクセスすることができる。structを使用した例:struct preferences {    unsigned int likes_ice_cream : 1;    unsigned int plays_golf : 1;    unsigned int watches_tv : 1;    unsigned int reads_books : 1;}; struct preferences fred;fred.likes_ice_cream = 1;fred.plays_golf = 1;fred.watches_tv = 1;fred.reads_books = 0;if (fred.likes_ice_cream == 1)    /* ... */構造体のビットメンバは実用上は欠点がある。まず、メモリ上のビットの順序はコンパイラによって変化する。加えて、多くの一般的なコンパイラは、ビットメンバの読み書きに対して、非効率なコードを生成する。さらに、ビットフィールドに関しては（特にマルチプロセッサシステムの場合は）、潜在的なスレッドセーフの問題がある。ほとんどのCPUではメモリ上の任意のビットの集合を扱えず、代わりにワード全体をロード／ストアする必要があるためである。以下のコード例はミューテックスを使用したとしても、スレッドセーフではない:struct foo {    int flag : 1;    int counter : 15;};struct foo my_foo;/* ... */pthread_mutex_lock(&my_mutex);my_foo.flag = !my_foo.flag;pthread_mutex_unlock(&my_mutex);/* 他のスレッド */my_foo.counter += 1;ほとんどのCPUでは、flagとcounterを別々にロードしてストアすることは、ハードウェアレベルで不可能である。（これがスレッドセーフであるためには、counter自身がスレッドセーフである必要がなくても、flagとcounterの両方について、全てのアクセスの前後でミューテックスをロック・アンロックする必要がある。）同様に、ビット順序の問題ため、ビットフィールドが正確にワードサイズの構造である依存性がある。