"bs" is the block size, not the byte size (a byte is always 8 bits). Reasons you might want to use it:
- To transfer a certain amount of fixed-size records (using bs and count options)
- To match the block size of a device, thus reducing I/O blocking (eg. for hard disks and tapes)
- To make use of a large buffer, thus reducing I/O requests
Simple example: you want to create a backup of the master boot record prior to changing the layout, it's as simple as
dd if=/dev/sda of=part_table.backup bs=512 count=1, since the MBR is exactly the 512 bytes at the beginning of the disk (including boot loader, partition table, ...)