linux shell awk printf怎么对数字右补0,是右补0

linux shell awk printf怎么对数字右补0,是右补0,第1张

由于printf很难右边补零这样的特性,可以换一种方式,作为字符串处理echo 12145 | awk '{width=10printf("%d",$1)for(i=0i<width-length($1)++i) printf "0"print ""} '其中width为指定的宽度

这和linux环境无关了,windows下也是这样的。

虽然8为的char可以表示256个字符,不过明显系统是用有符号数表示它的。超过127的数计算机就理解成负数了。200应该是表示为 -73

然后就是强制转换的问题了,系统先把-73按照补码的格式扩展到4个字节的int型,补码就是"111111111111111111111111101100101",后面几个01是我乱打的,懒得算了....然后用unsigned表示就是4294967240了。

至于LZ文为什么强制转化的unsigned int类型就按int类型来处理了,我只能说编译器就是这么做了,编程的时候还是得小心点。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8326295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存