Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
132 / 128 / 20
Регистрация: 05.08.2021
Сообщений: 581

Битовая клавиатура. Есть такая в калькуляторе Windows в опции режим программиста

23.12.2025, 12:06. Показов 1442. Ответов 29
Метки нет (Все метки)

Только там на все 64 бита, а я подумал что и 32 бит за глаза хватит. И написал на HTML и Javascript. А в Windows вообще калькулятор на чем написан? Небось C#?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<!DOCTYPE html> 
<html lang="ru"> 
<head> 
    <meta charset="UTF-8">
    <title>БИТОВАЯ КЛАВИАТУРА</title>
    <style>
        body {
            background-color: #95f0cd;
        }
        .sp {
            margin-top: 50px;
            font-family: Verdana;
            font-size: 25px;
            position: absolute;
           
        }
          .sp2 {            
            font-family: Verdana;
            font-size: 25px;
            position: absolute;
           
        }
        .m1{
           margin-left: 20px;  
        }
        .m2{
           margin-left: 140px;  
        }
         .m3{
           margin-left: 260px;  
        }
        .m4{
           margin-left: 380px;  
        }             
        .b{
            margin-top: 120px;
            margin-left: 220px;
            font-family: Verdana;
            font-size: 25px;
        }
          .p{
            margin-top: 25px;
            font-family: Verdana;
            font-size: 25px;
        }    
        .bit1{
          margin-top: 80px;
          margin-left: 30px; 
          position: absolute; 
          font-family: Verdana;
          color: blue;
        }
          .bit2{
          margin-top: 30px;
          margin-left: 25px; 
          position: absolute; 
          font-family: Verdana;
          color: blue;
        }
        .inbit{
            margin-left: 70px;
        }
         .inbit2{
            margin-left: 65px;
        }
         .inbit3{
            margin-left: 60px;
        }
          .inbit4{
            margin-left: 75px;
        }
    </style>  
</head> 
<body> 
    <div id='1' class="sp2 m1">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div id='2' class="sp2 m2">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div id='1' class="sp2 m3">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div id='2' class="sp2 m4">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div class="bit2"><span>32 бита</span><span class="inbit2">28 бит</span><span class="inbit2">24 бита</span><span class="inbit3">20 бит</span></div>
   <div id='1' class="sp m1">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div id='2' class="sp m2">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div id='1' class="sp m3">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div id='2' class="sp m4">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
   <div class='bit1'><span>16 бит</span><span class="inbit">12 бит</span><span class="inbit">8 бит</span><span class="inbit4">4 бита</span></div>
   <input type="button" value="=" id="but" class="b">
   <p id="p" class="p">DEC | </p>
   <p id="p8" class="p">OCT | </p>
   <p id="p16" class="p">HEX | </p>
  <script>
    let allsp = document.querySelectorAll('span');
    for (var i = 0; i < allsp.length; i++) {
       allsp[i].onclick = function () {
           if (this.innerHTML == '0') {
            this.innerHTML = '1'
           }
           else{
            this.innerHTML = '0'
           }
       }
    }
    but.onclick = function() {
       let s = '';
       p.innerHTML = 'DEC | ';
       p8.innerHTML = 'OCT | ';
       p16.innerHTML = 'HEX | ';
       for (var i = 0; i < allsp.length; i++) {
        if (!allsp[i].innerHTML.includes('бит')) {
            s += allsp[i].innerHTML
        }           
       } 
       s = parseInt(s,2)   
       p.innerHTML += s;
       p16.innerHTML += s.toString(16);
       p8.innerHTML += s.toString(8)       
    }
  </script>
</body> 
</html>
Миниатюры
Битовая клавиатура. Есть такая в калькуляторе Windows в опции режим программиста  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2025, 12:06
Ответы с готовыми решениями:

Заглянул в строенный калькулятор Windows 10, обнаружил там режим "программист" и опцию "битовая клавиатура"
На Си Шарпе наверняка сварганена, но у меня сразу возникла мысль - о, да это ж отличное учебное...

Можно ли дать пользователю выбрать опцию в SELECTe с помощью клавиатуры?
имеется: - браузер IE5 - ОС Windows NT 4 (или Windows 2000 Pro) на странице HTML есть ...

Взаимодействие опций в select
Помогите пожалуйста. Мне нужно чтобы при выборе опции в select, в другом поле select появлялись...

29
132 / 128 / 20
Регистрация: 05.08.2021
Сообщений: 581
23.12.2025, 21:07  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
о качестве картинки
Так и не понял какие там претензии к качеству? В том что кому-то мало понятен? Странно-странно... Зато возложенную на него задачу исполняет со скоростью Мессершмитта и даже ухитряется не делать ошибок
0
Эксперт .NET
 Аватар для Usaga
14354 / 9457 / 1360
Регистрация: 21.01.2016
Сообщений: 35,653
24.12.2025, 02:15
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Так и не понял какие там претензии к качеству?
Так krvsa тебе попытался донести претензии. Не понятно чем ты тут хвастаться решил, выкладывая школьную поделку эту. Ладно бы спрашивал совета, как улучшить, или как в 2025м году такое можно сделать. Но нет...
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1740 / 432
Регистрация: 14.03.2022
Сообщений: 4,434
24.12.2025, 13:13
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
"Неокрепший" это прилагательное такое и пишется слитно.
Я, как грамотей, не особо...
Но я и не выкладываю свои опусы на проф.форум филологов.

А если и выкладывал бы - так разве что за советом "как бы это лучше сделать".

Добавлено через 3 минуты
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Только конструктивной и спокойной, а не агрессивной и злобной.
Это все у тебя в голове...
Ты ни разу не спросил как такое можно сделать иначе. Ни разу.
Х/з какую особенную критику ты ожидаешь...
0
132 / 128 / 20
Регистрация: 05.08.2021
Сообщений: 581
24.12.2025, 15:24  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Ты ни разу не спросил
Ну вот прямо сейчас и спрошу. Как это сделать иначе?
А вообще делал так как учили в свое время
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1740 / 432
Регистрация: 14.03.2022
Сообщений: 4,434
24.12.2025, 15:44
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Как это сделать иначе?
Изменить верстку, добавить в ее создание JS... Тогда и стилизация будет более вменяемой.
В обработке кликов по 0 и 1 использовать делегирование событий.
Вывод результатов делать без дублирования конента.

Т.е. все нужно переделать...

Добавлено через 1 минуту
И это все можно просто сделать в "стиле 10-тых годов"...
0
Эксперт .NET
 Аватар для Usaga
14354 / 9457 / 1360
Регистрация: 21.01.2016
Сообщений: 35,653
24.12.2025, 16:53
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
А вообще делал так как учили в свое время
А открывать учебники тебя не учили? Без сарказма и шуток, это - основное умение любого человека мимикрирующего под разработчика. Я про умение учиться.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1740 / 432
Регистрация: 14.03.2022
Сообщений: 4,434
24.12.2025, 17:13
Предложу вот такой вариант, т.с. в стиле 10-тых годов...

Хотя я там малость заленился... И использовал уже синтаксис поновее.
Но и в старом такое реализовывается... Только букв будет больше, т.ч. смысл алгоритма не поменяется.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<style>
td {
    padding-left: 5px; 
    padding-right: 5px; 
    text-align: center;
}
#data tr:nth-child(odd) td {
    font-size: 150%;
    letter-spacing: 3px;
}
#data tr:nth-child(even) td {
    color: blue;
}
#data span {
    cursor: pointer;
}
td input {
    margin-top: 20px;
}
#itog {
    margin-top: 20px;
}
#itog td {
    text-align: left;
}
#itog td:nth-child(odd):after {
    content: ' |';
}
</style>
 
<table>
    <tbody id='data'></tbody>
    <tbody>
        <td colspan='4'>
            <input id='res' type='button' value='В другие системы счисления' />
        </td>
    </tbody>
</table>
<table id='itog'>
    <tr>
        <td>DEC</td>
        <td></td>
    </tr>
    <tr>
        <td>OCT</td>
        <td></td>
    </tr>
    <tr>
        <td>HEX</td>
        <td></td>
    </tr>
</table>
 
<script>
const n = 32
const oz = document.createElement('td')
for (let i = 0; i < 4; i++) {
    const o = document.createElement('span')
    o.textContent = 0
    oz.appendChild(o)
}
const ob = document.getElementById('data')
for (let i = 0; i < 2; i++) {
    let or = document.createElement('tr')
    for (let j = 0; j < 4; j++) {
        const o = oz.cloneNode(true)
        or.appendChild(o)
    }
    ob.appendChild(or)
    or = document.createElement('tr')
    for (let j = 0; j < 4; j++) {
        const o = document.createElement('td')
        let v = n - ((j + i * 4) * 4)
        v = v + ' бит' + (~[2, 4].indexOf(v % 10) ? 'а': '')
        o.textContent = v
        or.appendChild(o)
    }
    ob.appendChild(or)
}
const as = ob.getElementsByTagName('span')
// тут я малость заленился с этим старым стилем...
const ai = document.querySelectorAll('#itog td:nth-child(even)')
const aa = [
    v => v,
    v => v.toString(8),
    v => v.toString(16),
]
document.getElementById('res').addEventListener('click', _ => {
    let v = ''
    for (const o of as) {
        v += o.textContent
    }
    v = parseInt(v, 2)
    for (let i = 0; i < ai.length; i++) {
        ai[i].textContent = aa[i](v)
    }
})
ob.addEventListener('click', e => {
    const o = e.target.closest('span')
    if (!o) return
    o.textContent = +o.textContent + 1 % 2
})
</script>
0
132 / 128 / 20
Регистрация: 05.08.2021
Сообщений: 581
24.12.2025, 19:37  [ТС]
И получилось вот такое... А я то всегда думал что бит это либо ноль либо единица
Миниатюры
Битовая клавиатура. Есть такая в калькуляторе Windows в опции режим программиста  
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1740 / 432
Регистрация: 14.03.2022
Сообщений: 4,434
24.12.2025, 21:12
Цитата Сообщение от krvsa Посмотреть сообщение
JavaScript
1
o.textContent = +o.textContent + 1 % 2
Добавлю скобки...

JavaScript
1
o.textContent = (+o.textContent + 1) % 2
Или тернарку...

JavaScript
1
o.textContent = +o.textContent ? 0 : 1
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<style>
td {
    padding-left: 5px; 
    padding-right: 5px; 
    text-align: center;
}
#data tr:nth-child(odd) td {
    font-size: 150%;
}
#data tr:nth-child(even) td {
    color: blue;
}
#data span {
    cursor: pointer;
}
td input {
    margin-top: 20px;
}
#itog {
    margin-top: 20px;
}
#itog td {
    text-align: left;
}
#itog td:nth-child(odd):after {
    content: ' |';
}
</style>
 
<table>
    <tbody id='data'></tbody>
    <tbody>
        <td colspan='4'>
            <input id='res' type='button' value='В другие системы счисления' />
        </td>
    </tbody>
</table>
<table id='itog'>
    <tr>
        <td>DEC</td>
        <td></td>
    </tr>
    <tr>
        <td>OCT</td>
        <td></td>
    </tr>
    <tr>
        <td>HEX</td>
        <td></td>
    </tr>
</table>
 
<template id='zero'>
    <td>
        <span>0</span>
        <span>0</span>
        <span>0</span>
        <span>0</span>
    </td>
</template>
 
<script>
const n = 32
const oz = document.getElementById('zero').content
const ob = document.getElementById('data')
for (let i = 0; i < 2; i++) {
    let or = document.createElement('tr')
    for (let j = 0; j < 4; j++) {
        const o = oz.cloneNode(true)
        or.appendChild(o)
    }
    ob.appendChild(or)
    or = document.createElement('tr')
    for (let j = 0; j < 4; j++) {
        const o = document.createElement('td')
        let v = n - ((j + i * 4) * 4)
        v = v + ' бит' + ([2, 4].includes(v % 10) ? 'а': '')
        o.textContent = v
        or.appendChild(o)
    }
    ob.appendChild(or)
}
const as = ob.getElementsByTagName('span')
// тут я малость заленился с этим старым стилем...
const ai = document.querySelectorAll('#itog td:nth-child(even)')
const aa = [
    v => v,
    v => v.toString(8),
    v => v.toString(16),
]
document.getElementById('res').addEventListener('click', _ => {
    let v = [...as].reduce((v, o) => v + o.textContent, '')
    v = parseInt(v, 2)
    ai.forEach((o, i) => o.textContent = aa[i](v))
})
ob.addEventListener('click', e => {
    const o = e.target.closest('span')
    if (!o) return
    o.textContent = +o.textContent ? 0 : 1
})
</script>
Добавил немного новизны, до кучи...
0
132 / 128 / 20
Регистрация: 05.08.2021
Сообщений: 581
26.12.2025, 01:43  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
галиматью
Есть тут одна дамочка которая на сиё весьма вдохновляет..
Я, признаться, в 2012 году про сию интересную особу был ни сном ни духом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2025, 01:43

Удаление выделенных опций Select'a
ребят, такая проблеммка. Есть список, опции которого динамически создаются функцией javascript ...

Сохранение состояния опции "Показать/скрыть блок"
Все привет!:) имеется ссылки &quot;показать блок&quot; и &quot;скрыть блок&quot; и блок div как можно когда установлен...

Условие if в наборе опций плагина
Привет всем! Такая проблемка: При подключении плагина (слайдера) нужно прописать навигационны...

Запретить выбор опции в select по её ID
Здравствуйте, подскажите пожалуйста, как в селекте запретить выбор опции по ее id_value Вот сам...

Опционы не правильно работают
значит есть некий select, option которого заполняется в зависимости от того, что введено в другое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru