A resource allocation method in a time division duplex, TDD, system, comprising: receiving , by a terminal device, downlink control information from a network device, wherein the downlink control information comprises a resource allocation field, and when a system bandwidth is 25, 50, 75, or 100 resource blocks, the resource allocation field comprises 7 bits, 8 bits, 9 bits, or 9 bits respectively, wherein when the resource allocation field indicates, based on a first resource allocation scheme, resource allocation in an uplink bandwidth, ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ bits in ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ + 5 bits of the resource allocation field indicate a narrowband index in the uplink bandwidth, the 5 bits in the ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ + 5 bits of the resource allocation field indicate resource allocation in a narrowband for the terminal device, and a length of consecutive resource blocks allocated in the narrowband is N, wherein 1≤N≤6, and N RB UL indicates a quantity of resource blocks comprised in the uplink bandwidth; when the resource allocation field indicates, based on a second resource allocation scheme, resource allocation in an uplink bandwidth, the resource allocation field indicates a first resource indication value; when the terminal device determines, based on the second resource allocation scheme, resources allocated by the network device, determining , by the terminal device, the first resource indication value based on the resource allocation field; determining , by the terminal device based on the first resource indication value, a starting resource block allocated in the uplink bandwidth and a length L CRBs of consecutive resource blocks allocated in the uplink bandwidth, wherein M≤L CRBs ≤6, and M is a positive integer greater than 1; and sending , by the terminal device, data on resources corresponding to the starting resource block and the length of the consecutive resource blocks. receiving , by a terminal device, downlink control information from a network device, wherein the downlink control information comprises a resource allocation field, and when a system bandwidth is 25, 50, 75, or 100 resource blocks, the resource allocation field comprises 7 bits, 8 bits, 9 bits, or 9 bits respectively, wherein when the resource allocation field indicates, based on a first resource allocation scheme, resource allocation in an uplink bandwidth, ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ bits in ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ + 5 bits of the resource allocation field indicate a narrowband index in the uplink bandwidth, the 5 bits in the ⌈ log 2 ⌊ N RB UL 6 ⌋ ⌉ + 5 bits of the resource allocation field indicate resource allocation in a narrowband for the terminal device, and a length of consecutive resource blocks allocated in the narrowband is N, wherein 1≤N≤6, and N RB UL indicates a quantity of resource blocks comprised in the uplink bandwidth; when the resource allocation field indicates, based on a second resource allocation scheme, resource allocation in an uplink bandwidth, the resource allocation field indicates a first resource indication value; when the terminal device determines, based on the second resource allocation scheme, resources allocated by the network device, determining , by the terminal device, the first resource indication value based on the resource allocation field; determining , by the terminal device based on the first resource indication value, a starting resource block allocated in the uplink bandwidth and a length L CRBs of consecutive resource blocks allocated in the uplink bandwidth, wherein M≤L CRBs ≤6, and M is a positive integer greater than 1; and sending , by the terminal device, data on resources corresponding to the starting resource block and the length of the consecutive resource blocks. <EOS>