Присвоение двоичной константы

Я знаю, что есть способ устранить эту утечку памяти в C # и Java

Java и C # являются языками сбора мусора, поэтому они не склонны к утечкам памяти часто (это почти невозможно), но когда они делают это, вы можете выдать исключение,

Есть ли способ устранить эту утечку памяти в C ++?

в c ++ утечки памяти встречаются чаще, потому что вы вручную выделяете память каждый раз, когда создаете указатель, поэтому вы всегда будете выдавать исключение, чтобы указать, есть ли утечка памяти, где она возникает, где она и как с ней бороться ... ответ на ваш вопрос ... нет, вы не можете восстановить после утечки памяти в c ++, это язык "До металла", поэтому он настолько уязвим, если не написано правильно, но вы всегда можете вызвать исключение, когда происходит утечка памяти, вы можете указать ее и посмотреть, как это исправить.

7
задан Bugs 25 April 2017 в 15:17
поделиться

5 ответов

Я мог бы нанести удар мне после этого:

Convert.ToInt32("1100101", 2);

На более серьезной ноте (замечающий, что Вы обновили вопрос), для флага enums то, что можно хотеть, является левым оператором смещения (<<):

Dim myReality as Integer          = 1 << 0   // 1
Dim myAlternateReality as Integer = 1 << 1   // 2
Dim myParallelUniverse as Integer = 1 << 2   // 4
...

и так далее до 31.

17
ответ дан 6 December 2019 в 07:28
поделиться

К сожалению, лучшим, которое можно сделать, является Шестнадцатеричное число:

Dim x As Long = &H1234ABCD
3
ответ дан 6 December 2019 в 07:28
поделиться

или что-то описательное

Enum _SerialPortPins As Integer
    RTS = CInt(2 ^ 4)
    CTS = CInt(2 ^ 5)
    DSR = CInt(2 ^ 6)
    DCD = CInt(2 ^ 8)
    DTR = CInt(2 ^ 20)
    RI = CInt(2 ^ 22)
End Enum
1
ответ дан 6 December 2019 в 07:28
поделиться

Использовать комментарий?

Dim myFantasy as Integer = 2^3 '00000000-00001000
1
ответ дан 6 December 2019 в 07:28
поделиться

Я предполагаю, что Вы имеете в виду то, для чего John Rasch предоставил ответ. Вам составили строку, обнуляет и, которые Вы хотите преобразованный в некоторую переменную.

    Dim b As String = "10101"
    Dim i As Integer = 73
    Dim s As String
    s = Convert.ToString(i, 2) 's contains the binary representation of 73 - 1001001
    i = Convert.ToInt32(b, 2) 'i now =  21

и можно также использовать эти методы для шестнадцатеричного числа (16) и восьмеричный (8).

Вы могли также сделать что-то вроде этого

    Dim i As Integer = 6
    If (i And _bi.t0) = _bi.t0 OrElse (i And _bi.t1) = _bi.t1 Then
      'bit 0 or 1 on
    End If

Enum _bi As Integer
    t0 = CInt(2 ^ 0)
    t1 = CInt(2 ^ 1)
    t2 = CInt(2 ^ 2)
    t3 = CInt(2 ^ 3)
    t4 = CInt(2 ^ 4)
    t5 = CInt(2 ^ 5)
    t6 = CInt(2 ^ 6)
    t7 = CInt(2 ^ 7)
    t8 = CInt(2 ^ 8)
    t9 = CInt(2 ^ 9)
    t10 = CInt(2 ^ 10)
    t11 = CInt(2 ^ 11)
    t12 = CInt(2 ^ 12)
    t13 = CInt(2 ^ 13)
    t14 = CInt(2 ^ 14)
    t15 = CInt(2 ^ 15)
    t16 = CInt(2 ^ 16)
    t17 = CInt(2 ^ 17)
    t18 = CInt(2 ^ 18)
    t19 = CInt(2 ^ 19)
    t20 = CInt(2 ^ 20)
    t21 = CInt(2 ^ 21)
    t22 = CInt(2 ^ 22)
    t23 = CInt(2 ^ 23)
    t24 = CInt(2 ^ 24)
    t25 = CInt(2 ^ 25)
    t26 = CInt(2 ^ 26)
    t27 = CInt(2 ^ 27)
    t28 = CInt(2 ^ 28)
    t29 = CInt(2 ^ 29)
    t30 = CInt(2 ^ 30)
End Enum
2
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: