On Tue, Jun 14, 2016 at 10:44 AM, Dave MacFarlane <driu...@gmail.com> wrote:
> What I'm not understanding is why that's not the case in this example. It's
> a 32 bit bitwise operation on a 32 bit signed type.  Shouldn't 0xFFFFFFFF be
> coerced to a value of -1?

Why don't you just write -1?

I don't actually understand what you are doing.  Given an int32 value
x, x & 0xFFFFFFF (assuming that were valid) is always simply x.  What
else could it be?  If you want to mask out the sign bit you should
write x & 0x7FFFFFFF.

Ian


> On Tue, Jun 14, 2016 at 1:23 PM, Jan Mercl <0xj...@gmail.com> wrote:
>>
>> All binary operators, except shifts, require identical left and right
>> types. Untyped values will be coerced to the type of the other side, if
>> representable as such after the conversion. That's not the case in this
>> example.
>>
>> On Tue, Jun 14, 2016, 19:16 Dave MacFarlane <driu...@gmail.com> wrote:
>>>
>>> Is this supposed to be legal in Go:
>>>
>>> var x int32 = 3
>>>
>>> fmt.Printf("%d", x & 0xFFFFFFFF)?
>>>
>>> The language spec just says the bitwise operator "applies to integers
>>> only" and
>>> "yields a result of the same type as the first operand" that I can see,
>>> but it's giving
>>> me a compiler error:
>>>
>>> ./main.go:10: constant 4294967295 overflows int32
>>>
>>> with go 1.6.2.
>>>
>>> Is this a compiler bug, or am I missing something else in the spec that
>>> makes it impossible
>>> to mask out the high bit in a signed integer type without converting to
>>> an unsigned equivalent first?
>>>
>>> - Dave
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to golang-nuts+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>>
>> -j
>
>
>
>
> --
> - Dave
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to