Простая двоичная программа сложения, которую я написал, создает странный жужжащий шум через разъем для наушников - PullRequest
0 голосов
/ 24 октября 2018

Простая программа для добавления увеличения двоичного числа на единицу, преобразования его в шестнадцатеричное и эквивалент chr() начинает издавать странный жужжащий шум через разъем для наушников с каждой петлей.Вроде как постукивающий шум, я думаю

Вот код, который я написал в Python 3:

mem = '0000000000000000000000000000000000000000000000000000000000100000' # Starts at 32

def incbin():
    global mem
    membin = int(mem.replace('b', ''), 2)
    membin += 1
    membinfin = bin(membin)
    mem = membinfin[2:]

while True:
    print('')
    incbin()
    for x in range(int(len(mem)/8)):
        print(hex(int(mem[x:x+8], 2))[2:].zfill(2), end = ' ')
    for x in range(int(len(mem)/8)):
        print(chr(int(mem[x:x+8], 2)), end = ' ')

Я должен также упомянуть, что звук ошибки Windows продолжает воспроизводиться на долю секунды каждый сейчаси затем, но ошибки не появляется.

Вот пример вывода на консоль:

dc b8 Ü ¸, как вы можете видеть, первые 2 набора символов представляют собой шестнадцатеричное представление, а второй наборэквивалентен chr().

Может ли это быть аппаратной проблемой?Я использую Lenovo Yoga 11e с 4 ГБ оперативной памяти и Intel Core i3 2,3 ГГц

. Не знаю, почему это происходит.Я просто хочу выяснить, почему это происходит.Также должен сказать, что фанаты бьют по максимуму.Что странно, потому что я могу запускать несколько графически интенсивные игры с тихими фанатами.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Похоже, вы могли печатать символ звукового звонка.Вы получаете такой же шум, когда делаете что-то вроде print chr(7)?Как это сравнить с результатом print chr(7) * 100?

0 голосов
/ 24 октября 2018

Попробуйте этот код:

mem = '00100000'

def incbin():
    global mem
    membin = int(mem.replace('b', ''), 2)
    membin += 1
    membinfin = bin(membin)
    mem = membinfin[2:]

def tryChr(number):
    try:
        return f"  {chr(number)}"
    except:
        return  "   N/A"

def formatOne(number):
    h = ( "00" + hex(number)[2:] )[-4:]  # fits with 2**15 max
    return " ".join( (h[i:i+2] for i in range(0,len(h),2)) ) + tryChr(number)

l = []
for c in range(32,2**15): # 2**16 gives error - check yourself why
    l.append( formatOne(c) )

print(" ".join( ( l)))

Он печатается только один раз и хранит списки содержимого между ними - без бесконечного цикла.Это должно быть проще на вашем оборудовании и может минимизировать вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...