我需要对MAC地址进行一些操作,以48位编码,但format
会截断结果:
format 0x%x 0x100000000 ;# --> 0x0
是否可以为此做一些事情,或者我是否必须调整我的代码以使用较小的数字?
答案 0 :(得分:3)
在Tcl 8.4中,只需将大小修饰符l
赋予format
的字段指定符。这样,您告诉format
将该值解释为(至少)64位数字(相同大小的wide()
,这取决于机器):
format 0x%lx 0x100000000
(请注意,它是一个小写的 el 字母,而不是一个数字。)
在Tcl 8.5及更高版本中,整数数学以任意精度完成,ll
大小修饰符告诉format
不截断该值:
format 0x%llx 0x100000000
(同样,它们是两个小写 el 字母,而不是两个一个数字。)