将每秒位数(bps)转换为人类可读的大小格式

时间:2019-05-21 10:47:26

标签: ios objective-c

我如何在iOS中将每秒的位(bps)转换/计算为可读的大小格式,如10 Mbps,7 Gbps,5 Tbps,4 Pbps,3 Ebps ...等。

最佳

2 个答案:

答案 0 :(得分:3)

Objective-C

- (NSString *)convertBitrateToHumanReadable:(long long)bytes {
    NSByteCountFormatter * formatter = [[NSByteCountFormatter alloc] init];
    return [formatter stringFromByteCount:bytes];
}

快速5

func convertBitrateToHumanReadable(bytes: Int64) -> String {
    let formatter = ByteCountFormatter()
    return formatter.string(fromByteCount: bytes)
}

如果需要,您可以每秒附加ps(结果)。

答案 1 :(得分:0)

这是我用于转换的方法。当然,这只是我的需要。

- (NSString*)convertBitrateToHumanReadable:(NSInteger)bytes {
        int i = -1;

        NSArray *byteUnits = @[@"kbps", @"Mbps", @"Gbps", @"Tbps", @"Pbps", @"Ebps", @"Zbps", @"Ybps"];

        do {
            bytes = bytes / 1024;
            i++;
        } while (bytes > 1024);


        if (i > 0 & bytes > 1) { // ignores kbps and only allow 2 Mbps and above
            int bitSize = (int)(MAX(bytes, 0.1));

            return [NSString stringWithFormat:@"%i %@", bitSize, byteUnits[i]];
        } else {
            return @""; // if 1 Mbps or kbps level returns empty string
        }
    }

希望它会帮助别人。