Maybe it was an addition to a non-standard C compiler... as >>/<< map directly to SHR/SHL (or is it SAR/SAL?), >>>/<<< mapped to ROR/ROL.
- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Who'd be a game dev...
Collapse
X
-
Originally posted by MaryPoppinsI'd still not breastfeed a naziOriginally posted by vetranUrine is quite nourishing -
Originally posted by d000hg View PostMaybe it was an addition to a non-standard C compiler... as >>/<< map directly to SHR/SHL (or is it SAR/SAL?), >>>/<<< mapped to ROR/ROL.
>> is from C++, I don't recall seeing it in C but I haven't programmed in C for 15 years so I could be wrong. I don't think it's used much because the compiler should do it for you these days anyway and I guess with fast hardware these days, getting the last millisecond performance out of the code is not most peoples concern.Comment
-
>>> is C++ too. I think it similar to >> but one pads with 0 and one doesn't. Java is going back to C++ with increasingly complicated and ugly syntax.Originally posted by d000hg View PostWhoosh.
Which language is it has >>> and <<< which does a shift with wrapping?Comment
-
Comment
-
Comment
-
You are wrong.Originally posted by aussielong View Post>> is from C++, I don't recall seeing it in C but I haven't programmed in C for 15 years so I could be wrong.
How do you tell the compiler to do a bit shift, other than using the bitshift operators? And then what does it optimise it to?I don't think it's used much because the compiler should do it for you these days anyway and I guess with fast hardware these days, getting the last millisecond performance out of the code is not most peoples concern.
Well now you're just making stuff up. What does it pad with if it's not 0? 1?>>> is C++ too. I think it similar to >> but one pads with 0 and one doesn't. Java is going back to C++ with increasingly complicated and ugly syntax.
If it's a signed value, and you shift right, it pads with 0 if positive or 1 if negative. If it's unsigned, it pads with 0. Java seems to have two seperate >> and >>> operators, for some inexplicable reason.Last edited by VectraMan; 15 August 2012, 12:07.Will work inside IR35. Or for food.Comment
-
Was ANY part of AL's post accurate
Although a compiler COULD change a multiplication/division into a shift operation if it wanted to, if you are multiplying by a constant e.g x *= 32.Originally posted by MaryPoppinsI'd still not breastfeed a naziOriginally posted by vetranUrine is quite nourishingComment
-
If it's the same as Javascript then the >>> pads it with zero whether it's positive or negative, hence it's the unsigned right shift operator.Originally posted by VectraMan View PostYou are wrong.
How do you tell the compiler to do a bit shift, other than using the bitshift operators? And then what does it optimise it to?
Well now you're just making stuff up. What does it pad with if it's not 0? 1?
If it's a signed value, and you shift right, it pads with 0 if positive or 1 if negative. If it's unsigned, it pads with 0. Java seems to have two seperate >> and >>> operators, for some inexplicable reason.Comment
-
These operators make it fast to multiply and divide by powers of 2, which can be done using others operators, clearly. Some compilers will replace a multiply by 2 with a bit shift to the left.Originally posted by VectraMan View PostYou are wrong.
How do you tell the compiler to do a bit shift, other than using the bitshift operators? And then what does it optimise it to?
Well now you're just making stuff up. What does it pad with if it's not 0? 1?
If it's a signed value, and you shift right, it pads with 0 if positive or 1 if negative. If it's unsigned, it pads with 0. Java seems to have two seperate >> and >>> operators, for some inexplicable reason.
You get 0 padding if you use >>>, I think with >> you don't... Which leaves the top bits undefined after the shift.
This shouldn't be in general really should it.Last edited by aussielong; 15 August 2012, 17:10.Comment
-
How can you leave the top bits undefined? You'd **** the value up.Originally posted by aussielong View PostThese operators make it fast to multiply and divide by powers of 2, which can be done using others operators, clearly. Some compilers will replace a multiply by 2 with a bit shift to the right.
You get 0 padding if you use >>>, I think with >> you don't... Which leaves the top bits undefined after the shift.
Spod - In "I ******* Despair" mode!
Comment
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers

Comment