table of contents
BCAL(1) | User Commands | BCAL(1) |
NAME¶
bcal - Perform storage conversions and calculations.SYNOPSIS¶
bcal [-c N] [-s bytes] [-h][N unit]
DESCRIPTION¶
bcal (Byte CALculator) is a command-line utility to help with numerical calculations involving data storage units, addressing, base conversions etc.Features
* convert to IEC/SI standard data storage units * show the address in bytes * show address as LBA:OFFSET * convert CHS to LBA and vice versa * show binary, decimal and hex representation of a number * custom sector size, max heads/cylinder and max sectors/track * minimal dependencies
bcal follows Ubuntu's standard unit conversion and notation policy.
Refer to: https://wiki.ubuntu.com/UnitsPolicy
OPERATIONAL NOTES¶
N unit: N can be decimal or '0x' prefixed hex value. Unit can be B/KiB/MiB/GiB/TiB/kB/MB/GB/TB following Ubuntu policy. As all of these tokens are unique, unit is case-insensitive.Fractional bytes do not exist, because they can't be addressed. bcal shows the floor value of non-integer bytes.
Hex and decimal inputs are recognized for all inputs. Binary inputs are supported only with '-c'. This is a provision to convert a binary number to decimal/hex before using it as an input to other operations. No octal support.
Syntax: Prefix hex inputs with '0x', binary inputs with '0b'.
Default values: - sector size: 0x200 (512) - max heads per cylinder: 0x10 (16) - max sectors per track: 0x3f (63)
CHS and LBA inputs for format conversion are hyphen separated. The syntax is: - LBA: 'lLBA-MAX_HEAD-MAX_SECTOR' [NOTE: LBA starts with 'l' (case ignored)] - CHS: 'cC-H-S-MAX_HEAD-MAX_SECTOR' [NOTE: CHS starts with 'c' (case ignored)] Any unspecified value, including the one preceding the first '-' to the one following the last '-', is considered '0'.
No negative numbers allowed. Input limits are 'unsigned long long' and 'double'.
OPTIONS¶
- -c=N
- Show decimal, binary and hex representation of N. Use prefix '0b' for binary and '0x' for hex. N must be non-negative.
- -f=FORMAT
- Convert CHS to LBA or LBA to CHS. FORMAT is hyphen-separated
representation of LBA or CHS. Decimal or '0x' prefixed hex values are
accepted.
LBA: lLBA-MAX_HEAD-MAX_SECTOR (starts with 'l')
CHS: cC-H-S-MAX_HEAD-MAX_SECTOR (starts with 'c')Omitted values, (other than MAX_HEAD and MAX_SECTOR) are considered 0. Default MAX_HEAD: 16, default MAX_SECTOR: 63.
- -s=bytes
- Sector size in bytes. Default value is 512. Decimal and '0x' prefixed hex values accepted.
- -h
- Show program help and exit.
EXAMPLES¶
- 1.
- Convert storage capacity to other units and get address, LBA.
-
$ bcal 20140115 b $ bcal 0x1335053 B $ bcal 0xaabbcc kb $ bcal 0xdef Gib Note that the units are case-insensitive.
- 2.
- Convert storage capacity, set sector size to 4096 to calculate LBA.
-
$ bcal 0xaabbcc kb -s 4096
- 3.
- Convert LBA to CHS.
-
$ bcal -f l500 $ bcal -f l0x600-18-0x7e $ bcal -f l0x300-0x12-0x7e
- 4.
- Convert CHS to LBA.
-
$ bcal -f c10-10-10 $ bcal -f c0x10-0x10-0x10 $ bcal -f c0x10-10-2-0x12 $ bcal -f c-10-2-0x12 $ bcal -f c0x10-10--0x12
- 5.
- Show binary, decimal and hex representations of a number.
-
$ bcal -c 20140115 $ bcal -c 0b1001100110101000001010011 $ bcal -c 0x1335053
AUTHORS¶
Arun Prakash Jana <engineerarun@gmail.com>HOME¶
https://github.com/jarun/bcalREPORTING BUGS¶
https://github.com/jarun/bcal/issuesLICENSE¶
Copyright © 2016 Arun Prakash Jana <engineerarun@gmail.com>License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law.
Oct 2016 | Version 1.4 |