The untyped integer constant 0xFFFFFFFF represents a positive number not
representable by any int32 value.

On Tue, Jun 14, 2016, 19:45 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?
>
> 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
>
-- 

-j

-- 
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