Я уже прочитал некоторые вопросы Q & A, касающиеся вопросов, подобных моим, но я все еще не уверен, что мой случай совпадает с этими вопросами.Зачем бросать два раза в этой строке?
Я задаюсь вопросом, почему нам нужны два слепки здесь: (ULONG)(USHORT)(carry >> BITPERDGT)
*sptr_l++ = (USHORT)(carry = (ULONG)*aptr_l++
+ (ULONG)*bptr_l++ + (ULONG)(USHORT)(carry >> BITPERDGT));
ULong: typedef unsigned long ULONG;
USHORT: typedef unsigned short USHORT;
C библиотека используется: ФЛИНТ
Книга: Cryptogtaphy в C и C++
Потому что в криптографии вы хотите нечитаемый, запутанный, ** cryptic ** код. – Amit
было бы эффективно обнулить любые «высокие» биты, которые больше, чем ushort. –
Потому что мы хотим, чтобы маска USHORT была слишком большой стоимостью 'carry? Но это грязно. Маска была бы намного лучше. –