我知道要获得整数的最后一位数,你可以这样做:
printf("%d\n", 1105 % 10); //It will print 5
Run Code Online (Sandbox Code Playgroud)
现在,我能用二进制数做同样的事情吗?
printf("%d\n", 0101 % 10); //This will print 5 as well
Run Code Online (Sandbox Code Playgroud)
使用%2.
二进制数的最低有效位的值为1,因此模2是正确的选择.
但为什么0101会被解释为二进制数?正如ooga指出的那样,前导零使编译器将您的数字解释为八进制数.前导1将被解释为十进制.
毕竟,%2将为您提供1或0(即二进制中数字的最低有效位 - 无论您的输入是二进制,八进制,十进制还是其他).