我有一个脚本生成两个随机的32位浮点数a和b,并将它们分开以产生输出c .
我想以十六进制格式存储所有这三个浮点数,作为包含8个字符的字符串 .
我在网上找到了一个聪明的方法:
这是我在C中实施他们的建议
fileout << hex << *(int*)&a[i] << endl;
fileout << hex << *(int*)&b[i] << endl;
fileout << hex << *(int*)&c[i] << endl;
这适用于大多数情况 . 但是,有些情况下,字符串不是8个字符宽 . 有时他们只有一点点 . 以下是输出的示例:
af1fe786
ffbbff0b
fffbff0b
7fbcbf00
77fefe77
7ffcbf00
fdad974d
f2fc7fef
4a2fff56
67de7744
fdf7711b
a9662905
cd7adf0
5f79ffc0
0
6ebbc784
cffffb83
de3bcacf
e7b3de77
ec7f660b
3ab44ae4
aefdef82
fffa9fd6
fd1ff7d2
62f4
ebbf0fa6
ddd78b8d
4d62ebb3
ff5bbceb
3dfc3f61
ff800000
df35b371
e0ff7bf1
3db6115d
fbbfbccc
ddf69e06
5d470843
a3bdae71
fe3fff66
0
979e5ba1
febbe3b9
0
fdf73a80
efcf77a7
4d9887fd
cafdfb07
bf7f3f35
4afebadd
bffdee35
efb79f7f
fb1028c
我想要8个字符的表示 . 至于零的情况,我想将其转换为“00000000” .
但我真的很困惑那些长度只有4,5,6,7个字符的人 . 为什么有些数字在最后被填零而其他数字被截断?如果int是32位,为什么有时只显示一位?这是否是臭名昭着的“次正常”数字?
谢谢 .