Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要对 MAC 地址进行一些操作,编码为 48 位,但format会截断结果:
format
format 0x%x 0x100000000 ;# --> 0x0
是否可以为此做点什么,或者我必须调整我的代码以使用较小的数字?
在 Tcl 8.4 中,只需将大小修饰符l赋予format. 这样,您告诉format将值解释为(至少)64 位数字(大小相同wide(),取决于机器):
l
wide()
format 0x%lx 0x100000000
(请注意,它是小写的el字母,而不是一位数字。)
在 Tcl 8.5 及更高版本中,整数数学以任意精度完成,并且ll大小修饰符告诉format不要截断该值:
ll
format 0x%llx 0x100000000
(同样,它们是两个小写的el字母,而不是两个一个数字。)