我只是想知道为什么每个人都声明这样的二进制数字:
int val1 = 0b1010;
int val2 = 0b10000001;
当声明像float val1 = 0b1010;
这样的数字时也可以。
我正在处理一个处理图像像素颜色值的项目,因此我需要将每个颜色值的饱和度(通过从图像中读取)操纵到0.0
之间的浮点数。 1.0
。我假设将每个初始二进制文件声明为整数与掩盖等操作时的易操作性有关,但除了我见过的每个例子之外,我还没有看到任何特定的经验法则将变量初始化为int
。
(对我来说,一个例子是:
double val = 0b100000; //this is equivalent to 32.0
System.out.println(test1/255.0); //this gives out the ratio, namely 0.12549...
在这种情况下,我会跳过投射任何东西的需要......)
感谢您抽出宝贵时间来解决这个问题。
答案 0 :(得分:1)
当您声明float val1 = 0b1010;
时,这相当于声明float val1 = (float)0b1010;
从int
到float
的强制转换是隐含的,但仍然会执行。