欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 文件大小格式化为易读的字符串

文件大小格式化为易读的字符串

2024/10/24 8:29:37 来源:https://blog.csdn.net/wangxinwen/article/details/139415528  浏览:    关键词:文件大小格式化为易读的字符串

java代码

  public static String formatFileSize(long size) {if (size < 1024) return size + " B";int z = (63 - Long.numberOfLeadingZeros(size)) / 10;return String.format("%.1f %sB", (double) size / (1L << (z * 10)), " KMGTPE".charAt(z));}

php代码

function formatFileSize($size) {if ($size < 1024) return $size . " B";$z = (63 - (int)log($size, 2)) / 10;return sprintf("%.1f %sB", $size / (1 << ($z * 10)), " KMGTPE"[$z]);
}

golang代码

func formatFileSize(size int64) string {if size < 1024 {return fmt.Sprintf("%d B", size)}z := (63 - int(math.Log2(float64(size)))) / 10return fmt.Sprintf("%.1f %cB", float64(size)/(1<<uint(z*10)), " KMGTPE"[z])
}

C代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>char* formatFileSize(long long size) {char *output = (char*)malloc(20); // 分配足够的内存以存储结果字符串if (output == NULL) {fprintf(stderr, "内存分配失败\n");exit(1);}if (size < 1024) {sprintf(output, "%lld B", size);} else {int z = (63 - __builtin_clzll(size)) / 10;sprintf(output, "%.1f %cB", (double)size / (1LL << (z * 10)), " KMGTPE"[z]);}return output;
}int main() {// 测试示例char *result = formatFileSize(123456789); // 117.7 MBprintf("%s\n", result);free(result); // 释放动态分配的内存return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com